阅读 64

ES6 中的 let 和 const 的简单理解

1、在javascript中声明变量是 使用var关键字声明的,javascript中的变量可以存储任意的数据类型数据;存在变量提示、变量覆盖、全局变量污染、容易造成内存泄露等问题。

2.es6中通过let、const 来声明变量,有效的解决了var声明带来的问题。

以下通过例子简单来理解:

 1、声明的变量属于块级作用域 

//属于块级作用域,没有变量提升

function test(){

  for(let i=1;i<3;i++){ //这个括号内属于块级作用域,let 声明的变量只在其的作用域内有效
    console.log(i);  // i 的值 为 1、 2
  }

  console.log(i);  // 由于脱离了作用域,访问不到块级作用域里的i , 所以 i 为undefined
 
}


如果将 let 换成了 var, 则结果如下
function test(){
  for(var i=1;i<3;i++){ 
    console.log(i);  // 1  2
  }

  console.log(i);  // 3

}复制代码

2、let 

//使用let 声明的变量不能重复声明

{
  let a = 1;
  let a = 2;  
console.log(a) // 报错
}复制代码

3、 const 

function test(){        
  
  //  使用const 声明的变量必须赋值
  const w;   
  w = 123 ;
  console.log (w) // 报错

}复制代码
function test(){        
  

  // 使用 const 声明的变量如果为数值,则不可修改
  const PI=3.1415926;   
  PI = 66;
  console.log (PI)  //  报错, 'PI' is read-only 

  
}复制代码
function test(){

  // 但是如果声明的是对象,因为对象是引用类型,返回值为对象内存的指针,声明的这个对象
  // 对象存储的是指针,指针是不变的,对象的内容是可以改变的
  const k={           
    a:6                 
  }
  k.b=8;
  console.log(k);  // 输出的值为 6   8
}


作者:蜗速前进ing
链接:https://juejin.cn/post/7020973033036709924


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐