const 关键字
1.声明后的值不可以修改:
const name = "小康哥";
name = "小康"; // 报错,const为constant的缩写,表示常量,即不可改变的量
2.const关键字只在块级作用域起作用;
var flag = true;
if(flag) {
const num = '5211';
}
alert(num); // 报错,在作用域外,未定义num
3.不存在变量提升,必须先声明后使用;
if(true){
alert(xk); // 报错,不存在变量提升,未提前声明
const xk = 'xiaokang';
}
var car = 'BMW';
const car = 'QQ'; // 报错,错误原因:声明了一个已经存在的变量 car
4.不可重复声明同一个变量,声明后必须赋值;
const hello; // 错误,只声明未赋值
const hi = 'xiaokangge';
5.const常量可以是一个对象类型
const obj = {
"name":"xiaokang"
}
obj.name = "康哥";
obj.age = 18;
// 打印 obj 对象
console.log(obj); // {name:"康哥",age:18}
♦ 传值赋值:在赋值过程中,变量实际上存储的是数据的地址(对数据的引用),而不是原始数据或者数据的拷贝。
// 模拟传址赋值 var zhangsan = { "car":"black" }; var lisi = zhangsan; lisi.car = "red";
console.log(zhangsan); // {car:"red"} console.log(lisi); // {car:"red"}
总结:const关键字用于声明一个常量,且声明时必须赋值,声明后不可修改;同let关键字一样,也只是在块级作用域中起作用,不可以重复声明同一个变量,也不会发生变量提升;声明引用类型的常量时,需要注意的是,此时是传址(地址的引用)赋值。