001 Let 命令

ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。

1、let块级作用域

  {

  let  zifuchuan=10;

  var sxt =1;

  }

  zifuchuan//ReferenceError: zifuchuan is not defined.

  sxt//1

for循环的计数器,就很合适使用let命令

  for(let i=0;i<10;i++){

    //...

  }

  console.log(i);

  //ReferenceError:i is not defined

对比var和let在循环中的应用

  var a =[];

  for (var i =0;i<10;i++){

  a[i]=function(){

    console.log(i);

    };

  }

  a[6]();//6

上面代码输出的6

2、let不存在变量提升

  var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用

  为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。

  //var 的情况

  console.log(bar);//报错ReferenceError

  let bar =2;

3、let不允许重复声明

  let不允许在相同作用域内,重复声明同一个变量。

  //报错

  function func(){

    let a=10;

    var a=1;

  }

  //报错

  function func(){

  let a=10;

  let a=1;

  }

 

posted @ 2025-02-10 10:34  张筱菓  阅读(9)  评论(0)    收藏  举报