var
function sayHello() {
for (var i = 0; i < 5; i++) {
console.log(i);
}
console.log(i);
}
sayHello();
console:
0
1
2
3
4
5
let
function sayHello() {
for (let i = 0; i < 5; i++) {
console.log(i);
}
console.log(i);
}
sayHello();
error: 'i' is not defined(i 未被定义)
所以
当以var来定义变量,作用域是函数。
当以let来定义变量,作用域是定义它的代码块。
(一般来说,可以只用let定义变量,除非有十足理由使用var)
const
- const用于定义常量
- 与let类似,const的作用域也是块,即const定义的常量只在定义它的块中可访问。
网友评论