您的位置:首页 > 其它

第一节 块级声明 let const

2018-03-16 09:40 85 查看

块级声明变量 let

一个函数内部

被一对花括号包裹

禁止重复声明,但在嵌套的作用域中可以,因为没有变量提升了嘛。

不会进行变量提升,如需要,需手抖在函数体头部声明变量。

声明常量const

与let一样都是块级声明变量

const用来声明常量,一旦声明不可修改

必须在声明的时候被初始化,否则运行的时候报错

当使用const声明对象的时候,会阻止变量绑定,但是不会阻止修改对象成员。

与let一样不可以被重复声明。

const
的本质是保证变量指向的内存地址不可变。简单数据类型,值就保存在那个地址中。但是符合数据类型变量保存的是一个指针。指向对象数组保存的地址。该指针不可变,但是对象数组是可变的。

暂时性死区(TDZ)

在代码快中使用
let
const
声明变量常量,会造成暂时性死区,即在执行到该声明语句之前,是无法访问该变量/常量的,即使是
typeof
也会报错。特备注意是在代码块中会存在此特性

在代码块内使用
let
const
声明的变量常量,在代码快外使用
typeof
不会报错

再循环中使用let const

在循环内使用
let
声明
i
避免在外面访问到

巧妙使用let 实现闭包的功能

for
循环中不要用
const
声明’i’ 在进行
i++
时报错。

for-in
for-of
循环中使用不会报错

全局块级绑定

使用
var
声明的全局变量会挂载到
window
对象下,容易造成覆盖原对象中的成员。使用
let
const
声明的全局变量不会挂载到
window
对象下。

最佳实践

在默认情况下使用
const
,而只在你知道变量值需要被改变的情况下才使用
let
这在代码中能确保基本层次的不可变性,有助于防止某些类型的错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: