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