1-let和const

块级作用域

  for( let i = 0 ; i < 2 ; i++ ){
    alert(i)
  }
// 会依次弹出i,每次执行循环都是局部作用域,JS引擎记录了上一次i的值

1.let注意

  1. 没有预解析,不存在变量提升
    在代码块内,只要let定义变量,在使用之前,都是报错,先定义再使用;
  2. 不能重复定义变量
  3. for循环,for循环里面是父级作用域,循环体内是另一个
  for( let i = 0 ; i < 3 ; i++ ){
    let i = 'abc'
    console.log(i) // 输出3次abc
  }
  1. 现在建议使用let全面代替var.

1.const注意

const声明常量,值不可以被改变,如果改变,就会报错。但是,可以改属性,因为改属性是改变了其引用地址,并不是值。

你可能感兴趣的:(1-let和const)