ECMAScript6的新特性
ECMA(欧洲计算机制造商协会)
1、let和const命令
1)let命令用来生命变量,用法类似于var,使用该命令申明的变量,只在let命令所在的代码块中有效。
2)js和其他开发语言相比,少了一个作用域。js没有严格意义上的作用域,因为js的变量提升。
for(var i = 0; i < 18; i++){ } console.log(i) // 18
for(let i = 0; i < 18; i++){
// let申明的变量,只在申明所在的大括号内部有效 } console.log(i) // i is not defined
3)const常量,一旦被申明,常量的值就不能改变,就像Java中所谓的final
const PI = 3.14 PI = 3 //Assignment to constant variable.
4)let不存在变量提升
console.log('x',x); var x = 100;// 先打印后申明不报错,js变量提升,var x变成了全局变量
console.log('x',x); let x = 100;// x is not defined
var a = []; for (var i = 0; i < 10; i++) { a[i] = function(){ console.log(i); } } a[6](); // 10
// 做闭包,立即执行函数
var a = []; for (var i = 0; i < 10; i++) { a[i] = (function(i){ return function(){ console.log(i) } })(i); } a[6](); // 6
2、字符串,正则的扩展
3、数值的扩展
4、数组的扩展
5、函数的扩展
6、对象的扩展
7、for...of循环