1.let 和 const
(1)let:代码块内有效,适合 for 循环;
(2)不存在变量提升
(3)暂时性死区 只要块级作用域上存在let命令,它所声明的变量就“绑定这个区域”,不会受外部影响。
(4)不允许重复声明
(5)do表达式
在块级作用域中加上do 可以得到整个块级作用域的返回值
(6)块级作用域 和函数声明
应该避免在块级作用域中声明函数,即使声明也要写成函数表达式;
数组的解构赋值
var[a,b,c]=[1,2,3];
set 和 map
1.set :是一个类似数组的构造函数,其中的值都是唯一的;可以接受一个数组进行初始化
var s=new Set([1,2,3,2,2,4]);
s.size=4;
向set加入值的时候: NaN=NaN;两个对象总是不相等。
set的属性:
Set.prototype.constructor:构造函数,默认就是Set函数。
Set.prototype.size:返回Set实例的成员总数。
set的方法:
add(value):添加某个值,返回Set结构本身。
delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
has(value):返回一个布尔值,表示该值是否为Set的成员。
clear():清除所有成员,没有返回值。
Array.from方法可以将Set结构转为数组。
var items=new Set([1,2,3,4,5]); var array=Array.from(items);
generator函数
运行出错,是因为没有引入,babel-ployfill.
(1)yield语句
用在普通函数中会出错;yield语句如果用在一个表达式之中,必须放在圆括号里面。