let:用来定义变量
特点:只能在代码块里面使用,let拥有块级作用域;并且let不允许重复声明; 比如:

var a = 12;
var a = 5;
alert(a); //5;
let a = 12;
let a = 5;
alert(a); //报错;Identifier 'a' has already been declared

代码块:{}包
起来的代码,形成了一个作用域,比如if,for,while,json除外;块级作用域; var 只有函数作用域;

用处: 自执行函数:

for(let i = 0; i < aBtn.length; i++){
aBtn[i].onclick = function{
alert(i); //0,1,2
}
}

*** 块级作用域其实就是匿名函数自执行;
const:一般用来定义常量
常量:不允许修改;有些时候定的变量不希望被改变,这个不希望被改变的值就是常量;比如:

let a = 5;
a = 12;
alert(a); //12;

其实希望a的值是5,但是下面有相同的变量名字覆盖了let a的值;这个时候就要用到const;

const一旦被赋值,以后再也无法修改,比如:

const a = 12;
a = 5;
alert(a); //Assignment to constant variable.

const必须给初始值,比如:

const a;
a = 12;
alert(a); //Missing initializer in const

declaration; 正确的写法:

const a = 12;

因为const定义的变量以后再也没法赋值了;
const不能重复声明,比如:

const a = 12;
const a = 5;
alert(a); //Identifier 'a' has already been declared;

用途:防止意外修改变量;

关于字符串连接
之前定义字符串: var str = '';或者 var str = ""; ES6定义字符串:

var str1 = 'elcome';
var str2 = 'w';

ES6连接字符串:${变量名}

var str3 = '${str2}${str1}';  //输出:welcome;

解构赋值
ES6之前:

var a = 12;
var b = 5;
var c = 10;
alert(a); //

ES6:

var [a,b,c] = [12,5,10]; //数组的形式定义;
alert(a); //访问某一项
console.log(a); //打印出全部的值;
var {a,b,c} = {
a: 12,
b: 5,
c: 10
}; //json的形式定义;跟顺序无关;
alert(a); //访问某一项;
console.log(a,b,c); //打印出全部的值;

使用ES6定义的时候注意模式匹配:
模式匹配:左边的样子和右边的一样;

var [a,[b,c],d] = [1,[3,4],5];
console.log(a,b,c,d);

解构赋值默认值的写法:

var {time=12,id=321} = {};
console.log(time,id);//这里的time和id都是默认值;

因为等号右边没有赋值;所以需要给默认值,如果不给默认值的的话是undefined;

Array.from:复制一个数组

var arr = [1,2,3,4];
var arr2 = Array.from(arr);
arr2.pop; //删除arr2 中的某一项不会影响到arr;
console.log(arr,arr2);

快速复制一个数组: ···
实例1:

var arr = [1,2,3,4];
var arr2 = [...arr1]; //引用arr1里面的内容;
arr2.pop;
console.log(arr2);

实例2:

function show(...args){
console.log(args); //1,2,3,4;这里的值也就是arguments的每一个;
args.push(5); //往arguments里面添加一个;
console.log(args);//往arguments里面添加一个5,这在ES6之前是不允许的;
}
show(1,2,3,4);

新增循环 for of
for of 用来遍历(迭代/循环)整个对象;表现类似于for in;

var arr = ['banana','pear','orange','apple'];
for(var i in arr){ //i是索引;
console.log(i); //0,1,2,3,索引;
}
for(var i of arr){ //i是值;
console.log(i); //banana,pear,orange,apple;
}

for of 循环不能用来循环json,可以循环数组,for of的真正目的是为了循环map对象;实例如下:

var json = { 'a':'12', 'b':'11', 'c':'10', };
for(var name of json){
console.log(name); //json[Symbol.iterator] is not a function(…)
}

for of 也可以循环数组: 只循环值:

for(var name of arr){
console.log (name)
};

只循环索引:

for(var name of arr.keys){
console.log(name)
};

索引和值都循环:

for(var name of arr.entries){
console.log(name)
};

Map对象
和json相似,也是键值对的形式 key-value;Map对象主要是为了和for of循环配合而生。 怎么得到一个Map对象:

var oMap = new Map;

设置:

oMap.set (name,value);
oMap.set(name,value); //给Map对象设置值;
oMap.set ('a','banana');
oMap.set('b','pear');
console.log(oMap); //{"a" => "banana", "b" => "pear"}

获取:

oMap.get(name);
oMap.get ('a'); //banana;

删除:

oMap.delete(name);
oMap.delete('a');

循环Map用 for of:

var oMap = new Map;
oMap.set('a','banana');
oMap.set ('b','pear');
oMap.set('c','orange');
oMap.set('d','apple');
for(var name of oMap){ ==>此种写法的本质就是循环了oMap.entries;
console.log (name);//结果中不仅有name,还有value; a,banana b,pear,c,orange d,apple
}

==>此种写法等价于:

for(var name in oMap.entries){
console.log(name);
}

//以key-value的形式取值:

for(var [key,value] of oMap){
console.log(key+':'+vlaue); //a:banana b:pear c:orange d:apple
}

只循环key

for(var key of oMap.keys){
console.log(key); //a,b,c,d
}

只循环value

for(var val of oMap.values){
console.log (val); //banana,pear,orange,apple
}

箭头函数
ES6之前:

function show(a, b, c){
return a + b + c
}

ES6:

=> 注意: 箭头函数里面的this指的是window; 在箭头函数中arguments不能使用了;

ES6:给默认值

var move==>{
console.log(obj); //undefined;
//因为obj未传参;有些时候不希望有undefined;这个时候需要给一个默认值;
}
move;
var move=(obj='参数必须传递') => {
console.log(obj); //参数必须传递;
}

ES6 基础知识的更多相关文章

  1. ES6基础知识(Reflect)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. es6基础知识

    1.超引用:(...) 用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中 function fun(...args){ console.log(args); //[1,2,3,4,5,6] ar ...

  3. ES6 基础知识-----简记 let const

    ES5中只有函数作用域和全局作用域,声明变量使用var,在es6中添加声明变量 let const let 声明块级作用域变量, let 不存在变量提升 var命令会发生”变量提升“现象,即变量可以在 ...

  4. ES6基础知识(Map用法)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. es6基础知识总结(附加)

    附加: 字符串扩展: 1. includes(str) : 判断是否包含指定的字符串2. startsWith(str) : 判断是否以指定字符串开头3. endsWith(str) : 判断是否以指 ...

  6. vue初体验-ES6 基础知识补充 let 和const

    本人水平有限,如内容有误,欢迎指正,谢谢. let  : 主要特点: 1.作用域只局限于当前代码块.2.使用let 声明的变量作用域不会被提升.3.在相同的作用域下不能声明相同的变量.4.for循环体 ...

  7. ES6基础知识汇总

    1.如何理解ECMAScript6? ECMAScript是什么,ECMASCript的作用 2.新增let关键字 let的用途 3.关键字const const作用,传址赋值 4.解构赋值 解构赋值 ...

  8. ES6基础知识(async 函数)

    1.async 函数是什么?一句话,它就是 Generator 函数的语法糖. const fs = require('fs'); const readFile = function (fileNam ...

  9. ES6基础知识(Generator 函数应用)

    1.Ajax 是典型的异步操作,通过 Generator 函数部署 Ajax 操作,可以用同步的方式表达 function* main() { var result = yield request(& ...

随机推荐

  1. ios如何一个证书多台设备测试

    在苹果开发者网站申请的证书,是授权mac设备的开发或者发布的证书,这意味着一个设备对应一个证书,但是99美元账号只允许生成3个发布证书,两个开发证书,这满足不了多mac设备的使用,使用p12文件可以解 ...

  2. C# 使用Log4Net记录程序日志

    在之前的博客中,写过使用系统内置的Trace类记录程序日志,具体请参考:C# 使用Trace记录程序日志.这篇博客将介绍如何使用Log4Net记录程序日志. 首先需要引用Log4Net.dll,我们可 ...

  3. 纯CSS实现二级下拉导航菜单

    这是一款纯CSS菜单,二级下拉导航效果,是最简洁的CSS导航菜单,兼容性也很棒,IE7/8.火狐等都支持,而且它还是学习CSS菜单编写的典型教程,让你学会很多CSS技巧. 运行效果截图如下: < ...

  4. HDU 4858 分块

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4858 题意:中文题面 思路:来自此博客 对每个点定义两个值:val,sum,val记录自己的特征值,s ...

  5. oracle的sqlnet.ora,tnsnames.ora,listener.ora三个配置文件

    总结: 1 .三个配置文件都是放在$ORACLE_HOME\network\admin目录下. 2 .sqlnet.ora确定解析方式 3 .listener.ora上设SID_NAME,通常用于JD ...

  6. jvm的垃圾回收原理

    什么是垃圾回收? 垃圾回收是Java中自动内存管理的另一种叫法.垃圾回收的目的是为程序保持尽可能多的可用堆(heap). JVM会删除堆上不再需要从堆引用的对象. 用一个例子解释垃圾回收? 比方说,下 ...

  7. Leetcode N-Queens

    The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens ...

  8. POJ 2386 题解

    Lake Counting 描述 Due to recent rains, water has pooled in various places in Farmer John's field, whi ...

  9. oracle 取小数位数

    select ltrim('124532.62879'-floor('124532.62879'),'0.') from dual;select length(66695) from dual; 这两 ...

  10. MongoDB各种查询操作详解

    这篇文章主要介绍了MongoDB各种查询操作详解,包括比较查询.关联查询.数组查询等,需要的朋友可以参考下   一.find操作 MongoDB中使用find来进行查询,通过指定find的第一个参数可 ...