es6为循环中让和var区别详解

  

让和var区别:

        (var i=0; i<5,我+ +){   setTimeout(()=祝辞{   console.log (i);//5个5   },100)   }   console.log (i);//5   console.log ('=============')      (让j=0; j<5; j + +) {   setTimeout(()=祝辞{   console.log (j);//0, 1, 2, 3, 4   },100)   }   console.log (j);//报错j没有定义   之前      

为什么用我们就可以显示正确结果,而var就不可以呢?
  

  

var是全局作用域,有变量提升的作用,所以在为中定义一个变量,全局可以使用,循环中的每一次给变量我赋值都是给全局变量我赋值。
  

  

让是块级作用域,只能在代码块中起作用,在js中一个{}中的语句我们也称为叫一个代码块,每次循环会产生一个代码块,每个代码块中的都是一个新的变量j。

  

es6中不是说让声明变量不能重复声明吗?看下边例子:

        {   让一个=123;   }   {   让一个=246;   }   console.log (a);//没有定义;   {   var b=1;   }   {   var b=2;   }   console.log (b);//2,      

{}代表一个块,这个时候让声明的变量只在这个块中起作用,而这个块对var声明的变量不起作用。因为var是全局作用域。

        让=1;   让=2;//未捕获SyntaxError:标识符' a '已经宣布//让不能重复声明      让b=1;   var b=2;//未捕获SyntaxError:标识符' a '已经宣布//让不能重复声明         var c=3;   var c=4;   console.log (c)//4; var可以重复声明      之前      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

es6为循环中让和var区别详解