let
let 声明的变量
只在 let 命令所在的代码块内有效
(与var的区别)
var a = 10;
for(var a = 0;a<10;a++){
setTimeout(function(){
console.log(a);
},1)
}
------------------
let a = 20;
for(let b = 0;b<10;b++){
setTimeout(function(){
console.log(b);
},1)
}
2.
let 只能声明一次
(var 可以声明多次),就是说已经定义了一个a就不能再定义下一个a了
let a = 0 ;
let a = 1 ;
错误❌
3.
不存在变量提升
let a = 1;
a = 10 ;
错误❌
4.
不影响作用域
》注:通常与循环一起使用
const
const 声明一个只读的常量,
一旦声明
,常量的值就不能改变
[常量:只读属性]
声明必须赋初始值
标识符一般为大写
只能声明一次
(定义了一个a就不能再定义下一个a了)
块级作用域
function func() {
}
注:对象和数组修改不会触发const错误