const

259 阅读2分钟

如果给一个新值会报错; 2.但如果是下面面的呢?
不会报错,且改变了值。 在这里,会出现计算机科学家们熟悉的概念,那就是基元和不变性。我们会谈一点这方面的内容,但为了避免让本文成为一本计算机科学书籍,我不会深入地探讨这两个概念。

3.用 const 声明的 JavaScript 常量可以是全局范围的,也可以是区块范围的。如果常量位于区块内(即在{ 和}之间),它们就自动是区块范围的。如果它们没有在区块内,则它们是全局范围的。但是,与用 var 声明的变量不同的是,它们不会成为 window 对象的特性。如果它们位于模块中,位于区块外用 const 声明的变量对于该模块而言将是全局范围的。

4.const------- var

第一个 console.log 引用了以 var 定义的变量,它的返回值为 undefined。而第二个 console.log 引用了以 const 定义的变量,却出现了一个错误。这一现象被称之为暂时性死区,

5const 声明为一个值创建了一个只读的引用。这并不是说其代表的值是不可改变的,而只是说变量标识符不能被重新指定罢了

6.当你将 const 用于JavaScript 基元类型(如布尔值、数字、字符串等)时,const 的行为与你预想的一致(任何重新指定值的尝试都会导致错误)。 但是,当你将 const 用于JavaScript 对象时(包括数列、函数等),这个对象仍然是可以更改的,也就是说,这个对象的特性仍然可以被更改。

想要了解 let 和 const 作用域的详情, 1.JavaScript 中有两种作用域——全局作用域和函数作用域。官方规范中提到: 、如果变量语句(var)出现在函数声明中,那么变量的作用域就是函数的局部作用域。并且只能在该函数或其他嵌套函数内部访问它

2.let------var let 快级作用 var函数作用

3.变量提升

4.你已经理解了 var 和 let 之间的区别,那么 const 呢?事实证明,const 与 let 几乎完全相同。但是,唯一的区别是,一旦使用 const 为变量赋值,就无法对其重新赋值。第一条就说过了

5.。但其实不然,只是用 const 声明变量并不意味着它是不可变的,只是无法对其重新赋值而已。请看下面的例子。