我们与var关键字在ES6中有什么区别

  介绍

今天就跟大家聊聊有关让与var关键字在ES6中有什么区别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

 {
  var  a =, 10;
  let  b =, 8;
  }
  ,a //10,
  ,//b  Referenceerror : b  is  not 定义

上面在代码块中声明了两个变量并分别赋值输出到控制台,结果一个的变量成功输出,b的输出结果产生了报的错。可见,让声明的变量只在它所在的代码块中产生作用,同时,我们也能想到它最好的使用方法就是在为循环中使用。

下面我们再举个例子来观察它与var之间的区别:

 var  a =, (,)
  (var 小姐:=,0;i<6;,我+ +){
  [我],=,函数(){
  console.log(我);
  }
  }
  console.log(“我的值:“(我);
  (,4)(,),

它的输出结果为:

我的值:6 6

为什么是6呢?一开始我也被吓懵逼了,这有悖于我的常识,以往没注意到的地方,居然这么的低。在我的意识里结果应该4,而不是6。我想了很久也想不明白,以我这种小白的技术,自然是很难搞懂这种资深技术宅的问题,所以,我查了很多资料来解决这个问题,才搞明白。

里的在用var声明的我是全局变量,在循环外部也可以访问的到,在循环体内每次循环都给我重新赋一次值,而我却是属于全局的,外部的我值最终是6,数组一个[]指向的我始终都是同一个我,当循环结束时一个[]函数内部的我就是最终我的结果,6 .

如果使用,让声明的变量只在当前代码块中起作用

 var  a =, (,)
  (let 小姐:=,0;i<6;,我+ +){
  [我],=,函数(){
  console.log(我);
  }
  }
  console.log(“我的值:“(我);
  (,4)(,),

它的输出结果为:

,我的值:6
5

上面代码中,变量我是让声明的,当前的我只在本轮循环有效,所以每一次循环的我其实都是一个新的变量,所以最后输出的是5。你可能会问,如果每一轮循环的变量我都是重新声明的,那它怎么知道上一轮循环的值,从而计算出本轮循环的值呢?这是因为JavaScript引擎内部会记住上一轮循环的值,初始化本轮的变量我时,就在上一轮循环的基础上进行计算。

看完上述内容,你们对我们与var关键字在ES6中有什么区别有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

我们与var关键字在ES6中有什么区别