JS原先声明变量使用var;ES6中引入let和const用来扩展声明变量
(1)使用var声明的变量,作用域为该语句所在的函数体
(2)使用let声明的变量,作用域为块级代码(简单理解为大括号内)
(3)使用const声明的为常量,后续代码不可以对该常量重新赋值
栗子1
for (var i = 0; i < 3; i++) {
setTimeout(function () {
console.log(i)
}, 1000);
} // 3,3,3
栗子2
function varTest() {
var i = 1;
if (true) {
var i = 2; // 同样的变量!
console.log(i); // 2
}
console.log(i); // 2
}
function letTest() {
let i = 1;
if (true) {
let i = 2; // 不同的变量
console.log(i); // 2
}
console.log(i); // 1
}
网友评论