JavaScript中的var、let和const

2019-07-18  本文已影响0人  爱讲鸡汤的油腻大叔

首先,我们必须搞清楚ECMAScriptJavaScript
ECMA是一个将信息标准化的组织,简单来说,就是JavaScript被提交到ECMA进行标准化,由此诞生一个新的语言标准,即ECMAScript,而JavaScript是该标准下的实现
我们常说的es5是指200912月发布的ECMAScript5es620156月发布的ECMAScript2015,后将ECMAScript改名为ECMAScript6

varletconst都是声明变量的关键字,letconstes6引入的,那他们之间互相有什么区别呢?

es6出现之后,我们更应该少用var关键字,为什么呢?

es5为止,我们可以在代码中任意位置声明变量,甚至重写已经声明的变量

var fw = "Vue";
var fw = "React";
console.log(fw);    => React

但如果改用letconst关键字声明,会抛出变量已经被声明的错误

let和const的行为和一样,唯一的区别在于,用const声明的变量是只读的,也就是我们所说的常量

const PI = 3.1415926535;
PI = 3;
console.log(PI);  =>  抛出异常 "PI" is read-only

这里需要注意的是
对于const声明的非对象类型的变量(数、布尔值、字符串等),我们不能改变变量的值
但是对于const声明的对象,只读的const允许我们去修改或重新赋值对象的属性,但变量引用的内存地址不能被修改,也就是不能对这个变量重新赋值
简单来说,就是可以重写对象的属性,但是不能重新这个对象

const FW = {
      name: "Vue"
    };
    FW.name = "React";
    console.log(FW.name);   =>  React
  }
// 抛出异常 "FW" is read-only
FW = {
  name: "Angular"
}
上一篇下一篇

猜你喜欢

热点阅读