es6新特性
新增内容:
1、let,const,import,class变量声明语法(es5只有:var,function)
2、块级作用域
3、引入global对象
4、变量的解构赋值
5、遍历器Iterator和for...of循环遍历
6、字符串、正则、数值、函数、数组、对象的扩展
7、原始数据类型Symbol
8、Set(类似数组),WeekSet、Map(类似对象),WeekMap
9、Proxy代理拦截,Reflect对象
10、异步编程解决方案:Promise对象和Generator函数
11、模块(module)体系
一:函数的扩展:
函数默认值:
用法:function log(x, y = 'World') { console.log(x, y); }
注意点:1、定义了默认值的参数,必须是函数的尾部参数,其后不能再有其他无默认值的参数
2、undefined触发默认值,但null不会触发:
function foo(x=5, y=6){
console.log(x,y);
}
foo(undefined, null)
// 5 null
3、指定了默认值后,length属性将失真:
(function(a, b, c=5){}).length // 2
4、参数默认值所处的作用域,不是全局作用域,而是函数作用域。
rest参数: 多余的参数
注意点:同上1,3;
箭头函数:
函数柯里化: 常见作用:1. 参数复用;2. 提前返回;3. 延迟计算/运行