1.首先学习到的是 let 跟 var的区别,ES6引入了 块辖域的概念,这样能很方便的解决原来的作用域和闭包难理解的问题。
let的作用域是块,而var的作用域是函数。 let 允许把变量的作用域限制在块级域中。与 var 不同处是:var 申明变量要么是全局的,要么是函数级的,而无法是块级的。
示例如下:
'use strict'; var arr= [{ 'n':'d1' },{ 'n':'d2' },{ 'n':'d3' }]; for (let i = 0; i < 3; i++) { arr[i].let = function(){ console.log(i); } } // 原来的var for (var j = 0; j < 3; j++) { arr[j].var = function(){ console.log(j); } } arr[0].let(); arr[1].let(); console.log("下边是 var变量的结果:"); arr[0].var(); arr[1].var();
结果如下:
> 0
> 1
> 下边是 var变量的结果:
> 3
> 3
2. class
'use strict'; class Person{ constructor(newName){ this.name = newName; this.sayName = function() { console.log(this.name); } } } var p = new Person('Lily'); p.sayName();