一: 变量提升与否
var:
console.log(a); // undefinedvar a = 'abc';// 这段代码实际执行顺序是: var a; //变量声明提升至当前作用域顶部 console.log(a); a = 'abc';
let:
console.log(a); // 报错: a is not definedlet a = 'abc';// 这里, 用let声明变量, 变量声明不会提升, 完全按照文档流的执行顺序走
二:作用域问题
var:
for (var i = 0; i<10; i++) { // code.. }console.log(i); // 输出 10
let:
for (let i = 0; i<10; i++) { // code.. }console.log(i); // 报错: i is not defined // let 作用于 代码块 {}
获取更过