let、const、var 的区别
var:使用 var 声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象
let:使用 let 声明的变量,其作用域为该语句所在的代码块内,不存在变量提升。
const:使用 const 声明的是常量,在后面出现的代码中不能再修改该常量的值。
var | let | const |
---|---|---|
函数级作用域 | 块级作用域 | 块级作用域 |
变量提升 | 不存在变量提升 | 不存在变量提升 |
值可以改变 | 值可以改变 | 值不可以改变 |
1.关于let
let arr = [];
for (let i = 0; i < 2; i++) {
arr[i] = function () {
console.log(i);
}
}
arr[0]();
arr[1]();
image.png
2.关于const
//常量赋值后,值不能修改。
const PI = 3.14;
PI = 100; // 报错Assignment to constant variable.
const ary = [100, 200];
ary[0] = 'a';
ary[1] = 'b';
console.log(ary); // ['a', 'b'];
ary = ['a', 'b']; // 报错Assignment to constant variable.
3.关于var
var关键字声明的变量,无论实际声明的位置在哪,都会被视为声明在函数的顶部、如果声明不在任意函数内,则视为在全局作用域的顶部
网友评论