一天看某位大佬的代码时,发现里面一个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很好理解,但是对于符合类型的数据(数组和对象),只能保证那个变量所对应的地址不变,但对象本身还是可以修改的。