1、const、let、var的区别与使用场景

it2022-05-05  192

链接:https://segmentfault.com/a/1190000017757577 零、var和let/const的区别

块级作用域不存在变量提升(var会提升至“顶部”)暂时性死区(TDZ)不可重复声明(const、let、var都不能3选2去声明同一个变量表示符)let、const声明的全局变量不会挂在顶层对象下面(var 会,如 var a=1,window.a(node中是global.a) === a)

2、const(主要const与let区别)命令两个注意点:

const 声明之后必须马上赋值,否则会报错const 简单类型一旦声明就不能再更改(复杂类型不可更改其指针地址,但是可以更改其内部的东西!!),复杂类型(数组、对象等)指针指向的地址不能更改,内部数据可以更改。

二、let、const使用场景:

let使用场景:变量,用以替代var(避免一些不必要的错误)。const使用场景:常量、声明(函数体内声明)匿名函数、箭头函数的时候。总之,优先使用排序: const > let> var

三、为什么需要块级作用域?

ES5只有全局作用域和函数作用域,没有块级作用域。

这带来很多不合理的场景:

内层变量可能覆盖外层变量用来计数的循环变量泄露为全局变量

 


最新回复(0)