首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript的var,let和const 总结

当你需要对 var,let 和 const 进行复习时,希望对你有用。

var

语句用来在 JavaScript 中声明一个变量,该变量遵守以下规则:

作用域范围是函数作用域或全局作用域的。

不受暂存死区(TDZ)的限制。

它会在 上以相同的名称创建一个全局属性。

可分配的

可声明的

函数作用域和全局作用域

当出现在全局作用域内时, 创建一个全局变量。另外它还会在 上创建一个具有相同名称的全局属性

当在函数内部声明时,变量的作用域为该函数:

声明会被提升:

意外的全局变量

在没有任何声明的情况下所分配的变量(无论是 , 还是 )在默认情况下会成为全局变量

为了消除这种行为,需要使用严格模式

可重新分配和重新声明

任何用 声明的变量都可以在以后进行重新分配重新声明。重新声明的例子:

重新分配的例子:

let

语句在 JavaScript 中声明一个变量,该变量遵守以下规则:

属于块作用域。

受到暂存死区的约束。

它不会在 上创建任何全局属性。

可分配的

不可重新声明

块作用域

用 声明的变量不会在 上创建任何全局属性:

当在函数内部声明时,变量的作用域为该函数:

当在中声明时,变量的作用域为该块。以下是在块中使用的例子:

一个带有 块的例子:

相反, 并不受到块的限制:

暂存死区

声明可能会被提升,但是会产生暂存死区

暂存死区可防止在初始化之前访问 声明。另外一个例子:

可以看到两个例子中产生的异常都是一样的:证明了“暂存死区”的出现。

可重新分配,不可重新声明

任何用 声明的变量都不能重新声明。重新声明引发异常的例子:

这是一个有效的重新分配的例子:

const

语句用来在 JavaScript 中声明一个变量,该变量遵守以下规则:

是属于块作用域的。

受到“暂存死区”的约束。

它不会在 上创建任何全局属性。

不可重新分配

不可重新声明

块作用域

用 const 声明的变量不会在 上创建任何全局属性:

当在函数内部声明时,变量的作用域为该函数:

当在中声明时,变量的作用域为该块。块语句 的例子:

在 块中的例子:

暂存死区

声明可能会被提升,但是会进入暂存死区

不可重新分配,不可重新声明

用 声明的任何变量都不能重新声明,也不能重新分配。一个在重新声明时抛出异常的例子:

重新分配的例子示例:

总结

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200914A0HWIA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券