ES6 学习系列---《const》

  • 一旦声明,变量值无法改变。
const a = 1;
a = 2; //error
  • 声明时需初始化
const a; // error
  • 作用域只在块区域内有效
if (true) {
    const a = 1;
}

console.log(a); //error
  • 使用变量前必须声明
console.log(a); // error

const a = 2;
  • 不能重复声明
var a = 3;
const a = 4; // error
  • const本质:变量指向的内存地址不得改动,并非变量值不能改动。

    • 简单数据类型:值保存在内存地址中

    • 复杂数据类型(对象、数组)

      • 变量地址保存的只是一个指针,const仅保证该指针固定,无法保证指针所指的数据结构是否固定。

const foo = {};
foo.prop1 = 123;
foo.prop2 = 234;

foo = {}; //Uncaught TypeError: Assignment to constant variable.

foo可以添加属性,foo存储的是一个地址,该地址指向一个对象。不可变的是这个地址,即foo不能指向另一个地址,但是对象本身是可变的,可以为foo添加新属性。

const a = [];
a.push('hello');
a.length = 0;
a = ['Dave']; //Uncaught TypeError: Assignment to constant variable.

常量a是一个数组,数组本身是可写的,如果将另一个数组值赋给a,就会报错。

发布了91 篇原创文章 · 获赞 18 · 访问量 3186

猜你喜欢

转载自blog.csdn.net/A_bad_horse/article/details/105025710
今日推荐