块级作用域
for( let i = 0 ; i < 2 ; i++ ){
alert(i)
}
// 会依次弹出i,每次执行循环都是局部作用域,JS引擎记录了上一次i的值
1.let注意
- 没有预解析,不存在变量提升
在代码块内,只要let定义变量,在使用之前,都是报错,先定义再使用; - 不能重复定义变量
- for循环,for循环里面是父级作用域,循环体内是另一个
for( let i = 0 ; i < 3 ; i++ ){
let i = 'abc'
console.log(i) // 输出3次abc
}
- 现在建议使用let全面代替var.
1.const注意
const声明常量,值不可以被改变,如果改变,就会报错。但是,可以改属性,因为改属性是改变了其引用地址,并不是值。
网友评论