ES6教程:让和const命令的用法

  
  

<强> ES6中新增了我们和const命令,分别用于声明变量和常量。

     

1。使用让命令取代var命令

  

在ES6之前的版本中,使用<代码> var 声明变量,在ES6中新增了<代码>让> 完全可以取代<代码> var> 没让有“副作用”。

  

我们先来看一下<代码>让代码>   

      <李>不存在变量提升:变量只有在声明之后才能使用,李   <李>不允许重复声明:在相同的作用域下,一个变量名只能使用一次,不能重复声明,李   <李>具有块级作用域:在代码块中声明的变量,只对当前代码块和其内部嵌套代码块有效,如果嵌套代码块中声明了同名变量时,则对该嵌套代码块无效;李   <李>存在暂时性死区:当全局变量与代码块中变量同名时,代码块中的变量就有了块级作用域,其变量声明前不能使用。   
  

JavaScript是弱类型的编程语言,在ES6之前使用<代码> var 关键字声明变量,会发生变量提升的现象。简单来说,就是在声明变量之前就对该变量进行调用,程序不会报的错,而且打印出来的值为<代码>定义>   

 <=坝镅詊avascript代码类>功能测试(){
  console.log(我);
  var i=1;
  }
  测试(); 
  

运行结果:

  
 <代码>定义 
  

上面代码中,变量<代码> 我是使用<代码> var 命令声明的,我们在变量声明之前在控制台打印<代码>我> 我> 未定义的

  

如果是同样的代码,把<代码> var> 让>   

 ES6教程:让和const命令的用法

  

当变量使用<代码> 声让明时,不会发生变量提升,这就说明在变量声明之前,变量<代码>我>   

在ES5中有两个作用域,分别是全局作用域和函数作用域,到了ES6就新增了一个块级作用域。如果没有块级作用域的话,在处理业务场景时会带来很多不便,比如内层变量覆盖外层变量,再或者是使用<代码> 循环时,循环中迭代的变量泄露为全局变量等等。

  

ES6中的<代码>让代码>   

 <=坝镅詊avascript代码类>功能测试(){
  让我=1;
  如果(真){
  让我=2;
  }
  console.log(我);
  }
  测试(); 
  

运行结果为:

  
 <代码> 1  
  

在<代码>测试()函数代码块中,对变量<代码>我> var 命令声明变量的逻辑,结果应该是<代码> 2> 让代码>   

如果理解了<代码>让代码>   

 <=坝镅詊avascript代码类>功能测试(){
  让我=1;
  如果(真){
  console.log(我);
  让我=2;
  }
  console.log(我);
  }
  测试(); 
  

运行结果为:

  

 ES6教程:让和const命令的用法

  

由于各层级代码块都有自己单独的作用,域内层作用域不受外层的影响,所以当我们在<代码>如果()语句中再次声明变量<代码> 时,该作用域下的变量是独立存在的,在未声明之前就调用该变量,就会出现我们前面说过的“变量提升”的概念,<代码>让代码>   

2。使用常量命令声明常量

  

<代码> const 命令的用法和

ES6教程:让和const命令的用法