ES6声明变量的六种方法
ES5只有两种 var,function命令
ES6新增了let,const,class,import命令
验证var与let用法上的不同
var a = []; for (var i = 0; i < 10; i++){ a[i] = function(){ console.log(i); } } a[4]();
var声明的i是全局变量,结果是10
var a = []; for (let i = 0; i < 10; i++){ a[i] = function(){ console.log(i); } } a[4]();
let在for循环的作用域内是有效的
a[4]();的结果是4
ES6新增了块级作用域
外层的代码块不受内部代码块的影响
function f1() { let n = 5; if (true) { let n = 10; } console.log(n); } f1();
f1();的结果为5
function f1() { var n = 5; if (true) { var n = 10; } console.log(n); } f1();
使用var定义n,结果就是10
ES6的块级作用域内声明的函数处理规则
原文:https://www.cnblogs.com/typttxs/p/9955580.html