JavaScript中ES6规范中let和const的用法和区别
ES6——let和const命令
引言
本文主要讲解ES6中变量的相关操作,变量的命名,讲解var、let、const三者的区别
正文
ES6中的let和const都是用来声明变量的,他们与var有所区别
let命令
我们都知道在for循环中,我们命名的变量i一般都只是为了在这个循环中使用,才临时命名的,我们希望循环结束后,这个变量就消失,但是却相反,用var命名的变量,在for循环结束后并不会销毁,而会存在于全局中。
for(vari=0;i<5;i++){ console.log('循环'+i) } console.log(i)
/*输出结果 */
循环1
循环2
循环3
循环4
5 //这里是循环外输出的i
但是如果我们在for循环中,用到let去命名变量会怎么样呢?
for(leti=0;i<5;i++){ console.log('循环'+i) } console.log(i)
/*输出结果 */
循环1
循环2
循环3
循环4
undefined //这里是循环外输出的i,显示未定义
这样的话就解决了因为var命名导致的变量泄露的问题了,其实它的本质就是作用域,let只作用于他自身所在的代码块内,而var是针对全局都有效的。例如这一个简单的例子:
{ leti=1 varn=2 } console.log(i) console.log(n)
/*输出结果*/
undefined
2
可以看到,let命名的变量只存在于那个代码块内,到外部就访问不到了,而var就是针对全局命名的。
const命令
const和let类似,也是命名的变量只能在它所在的代码块内能被访问得到,到外部就无法被访问到,但是const与let的区别就在于,const命名的变量是一个只读变量,简而言之就是命名了就无法在后面被修改,例如这个例子:
consta='apple' letb='orange' a='watermelon' b='banana'
/*输出结果*/
a='watermelon'
^
显而易见,系统会直接报错,因为const命名的变量a是无法改变的,后续无法对其进行赋值。
其实const命名变量以后,也不是说就真的无法改变了,因为const命名时其实是把箭头指向了内存中的一个对象,只要不改变这个对象地址,const命名的变量还是可以变化的,例如:
constlist1=[] list1.push('变化1') console.log(list1) //['变化1']
可以看到list1.pish('变化1')不会改变变量list1在内存中的地址。
但是list1=['变化1']就会改变list1在内存中的地址,所以会报错
constlist1=[] list1=['变化1'] console.log(list1) //报错:list1=['变化1'] ^
结束语
这就是let和const的简单应用,希望对大家有所帮助,下一篇ES6(2)将讲解变量的解构赋值
到此这篇关于JavaScript中ES6规范中let和const的用法和区别的文章就介绍到这了,更多相关JavaScript中let和const用法区别内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。