const,let,var


一天看某位大佬的代码时,发现里面一个var也没有,当时就觉得惊为天人。当然学代码不能仅仅为了酷,酷当然是激励我们敲代码的一个重要理由,但我们也应该搞清楚为什么需要这么做,以便我们以后遇到了类似的问题知道该从什么样的思路出发

1.前言

1.1背景介绍

const,let实际上都是es6的新增内容

1.2 参考资料

2.let

2.1 let是更完美的var

对于绝大多数代码而言,在es6的新标准下,你应该停止上使用var,能使用let就用吧

2.2 基本用法

它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。

2.3 不存在变量提升

2.4 暂时性死区

在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”(temporal dead zone,简称 TDZ)。

暂时性死区”也意味着typeof不再是一个百分之百安全的操作。

总之,暂时性死区的本质就是,只要一进入当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和使用该变量。

2.5 不允许重复声明

3 const

const在很多于语言都有体现,也很好理解了,即为声明一个只读的常量。一旦声明,常量的值就不能改变

3.1 必须马上初始化

3.2 不存在变量提升

3.3 暂时性锁区

3.4 const的本质

对于简单数据类型const很好理解,但是对于符合类型的数据(数组和对象),只能保证那个变量所对应的地址不变,但对象本身还是可以修改的。