yuanyuanbyte / Blog

圆圆的博客,预计写七个系列:JavaScript深入系列、JavaScript专题系列、网络系列、Webpack系列、Vue系列、JavaScript基础系列、HTML&CSS应知应会系列。
306 stars 125 forks source link

JavaScript 基础系列之 let、const 以及 var 的区别 #76

Open yuanyuanbyte opened 2 years ago

yuanyuanbyte commented 2 years ago

本系列的主题是 JavaScript 基础,每期讲解一个技术要点。如果你还不了解各系列内容,文末点击查看全部文章,点我跳转到文末

如果觉得本系列不错,欢迎 Star,你的支持是我创作分享的最大动力。

let、const 以及 var 的作用

var 语句 用于声明一个函数范围或全局范围的变量,并可将其初始化为一个值(可选)。

let 语句声明一个块级作用域的局部变量,并可以初始化为一个值(可选)。

const 语句声明一个常量,是块级范围的,非常类似用 let 语句定义的变量。但常量的值是无法(通过重新赋值)改变的,也不能被重新声明。

let、const 以及 var 的区别

(1) 初始值设置: 在变量声明时,var 和 let 可以不用设置初始值。而const声明变量必须设置初始值。

(2) 给全局添加属性: var声明的变量为全局变量,并且会将该变量添加为全局对象的属性,但是let和const不会(浏览器的全局对象是window,Node的全局对象是global)。

(3) 块级作用域: let和const具有块级作用域,var不存在块级作用域。块级作用域解决了ES5中的两个问题:

(4) 变量提升: var存在变量提升,let和const不存在变量提升,即在变量只能在声明之后使用,否在会报错。

(5) 暂时性死区: 在使用let、const命令声明变量之前,该变量都是不可用的。这在语法上,称为暂时性死区(TDZ,temporal dead zone)。使用var声明的变量不存在暂时性死区。

(6) 重复声明: var声明变量时,可以重复声明变量,后声明的同名变量会覆盖之前声明的变量。const和let不允许重复声明变量。

查看全部文章

博文系列目录

交流

各系列文章汇总:https://github.com/yuanyuanbyte/Blog

我是圆圆,一名深耕于前端开发的攻城狮。

weixin