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关键字一样,也只是在块级作用域中起作用,不可以重复声明同一个变量,也不会发生变量提升;声明引用类型的常量时,需要注意的是,此时是传址(地址的引用)赋值。