1、const、let、var的区别与使⽤场景
1. 块级作⽤域
2. 不存在变量提升(var会提升⾄“顶部”)
3. 暂时性死区(TDZ)
4. 不可重复声明(const、let、var都不能3选2去声明同⼀个变量表⽰符)
5. let、const声明的全局变量不会挂在顶层对象下⾯(var 会,如 var a=1,window.a(node中是global.a) === a)
2、const(主要const与let区别)命令两个注意点:
1. const 声明之后必须马上赋值,否则会报错
2. const 简单类型⼀旦声明就不能再更改(复杂类型不可更改其指针地址,但是可以更改其内部的东西!!),复杂类型(数组、对象等)指
const的作用针指向的地址不能更改,内部数据可以更改。
⼆、let、const使⽤场景:
1. let使⽤场景:变量,⽤以替代var(避免⼀些不必要的错误)。
2. const使⽤场景:常量、声明(函数体内声明)匿名函数、箭头函数的时候。
3. 总之,优先使⽤排序: const > let> var
三、为什么需要块级作⽤域?
ES5只有全局作⽤域和函数作⽤域,没有块级作⽤域。
这带来很多不合理的场景:
1. 内层变量可能覆盖外层变量
2. ⽤来计数的循环变量泄露为全局变量
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论