const声明变量(常量):

1、常量,常量的值(非复合型数据)不可以改变

const temp = 10;
temp = 5;//报错: Assignment to constant variable.
//temp已声明为一个常量,常量一旦声明只可读,不允许改变,去修改这个常量就会抛出错误。

2、因const声明的常量不可改变,所以在声明时候就必须赋值,不能留到后面赋值

const foo;// SyntaxError: Missing initializer in const declaration
//只声明而不赋值就会报错

3、const的作用域:只在声明所在的块级作用域中生效


if(true){
    const temp = 11;//const声明了常量temp,temp的作用域就是在当前if语句的块作用域中
}
console.log(temp);//报错: temp is not defined    
//当前作用域拿不到if语句中的temp,所以当前作用域找不到temp而抛出错误

4、const声明的常量不能提升,所以形成“暂存死区”


console.log(num);//num is not defined
const num = 10;
//在当前作用域中,声明之前使用会报错,只能在声明的后面使用

5、const声明的常量同样不能声明同名的

const num = 10;
const num = 20;//报错:Identifier 'num' has already been declared
//同一作用域下不能使用相同名字的常量,等同于let

6、const不同块作用域下可以声明同名的常量


if(true){
    const temp = 44;
}
const temp = 55;
//不同的作用域下可以使用同名的常量

7、const声明的常量,实际是指指向内存的址不变

const obj = {};
obj.name = 1;//可以操作复合型数据常量的结构
obj.age = 18;//对于对象类型的数据,可以改变obj常量的结构

const obj1 = {};
obj1 = {};//报错哦!不能再赋值给这个常量

const arr = [];
//可以操作arr的结构
arr[0] = 1;
arr[1] = 2;
//不能将arr指向新的数组或其他
arr = [1,2];//报错

xiaoyingZha
17 声望2 粉丝

就是这么滴......


下一篇 »
let声明变量