在ES6中使用 const 来声明常量

首先什么是常量,常量就是相对于变量而言不可变动的量,111、'qqq' 这样都是常量。

const nub = 1;
console.log(nub);  //1

 

在使用 const 的时候有以下几点需要注意:

1、使用const声明常量一定要赋初始值,否则会产生语法错误

const a = 1;

const b; //SyntaxError: Missing initializer in const declaration

2、常量的值不能修改

正是因为 const 声明的变量不可以改变值,所以只要声明变量就必须进行初始化,不可以等声明之后再另外进行赋值

const NUMBER = 'jojo';
NUMBER;

NUMBER = 'hell';  //TypeError: Assignment to constant variable.

3、const 有块级作用域

和 let 一样const也有块级作用域,只在声明所在的块级作用域之内有效

{
    const age = 17;
}
age; //ReferenceError: age is not defined

并且使用 const 声明的常量也不会提升,存在暂时性死区,只能在声明之后调用

    console.log(age);
    const age = 17;
//ReferenceError: Cannot access 'age' before initialization

4、对于数组和对象的元素修改,不算做对常量的修改,不会报错

 对于复合类型的变量,变量名不指向数据,而是指向数据所在的地址。const 明亮只是保证变量名指向的地址不变,但是存储在这个地址里面的数据则有可能发生变化。

const tim = [1,2];
tim.push(3);
console.log(tim);  //[1, 2, 3]

上面这段代码中,常量 tim作为一个数组,是可以写入的并且不会报错,因为指向的地址并没有发生改变。但是如果将另外一个数组赋值给 tim 则会报错,因为这时候 tim指向的内存地址发生了改变。

参考资料:https://www.w3cschool.cn/ecmascript/ueqp1q5g.html

注意:声明数组或是对象的时候,使用 const 是比较稳妥的,可以避免常量变动错误。

posted on 2020-08-10 17:22  Cloud%  阅读(810)  评论(0编辑  收藏  举报