项目作者: jinglisha

项目描述 :
关于const的学习笔记
高级语言:
项目地址: git://github.com/jinglisha/ES6-const.git
创建时间: 2020-06-15T03:53:07Z
项目社区:https://github.com/jinglisha/ES6-const

开源协议:

下载


ES6-const

const和let完全相同,仅在于用const声明的变量,必须在声明时赋值,而且不可以重新赋值。

常量声明时必须赋值

  1. const a;
  2. console.log(a) // 报错(缺失初始化 在 一个常量的声明中)

常量不可以重新赋值

  1. const a = 1;
  2. a = 2;
  3. console.log(a) // 报错(赋值给常量)

要注意的细节

常量不可变

常量不可变,是指声明的常量的内存空间不可变,并不保证内存空间中的地址指向的其他空间不可变。

  1. // 不能给a直接重新赋值,但是可以改变a里面的值
  2. const a = {
  3. name: 'sunny'
  4. };
  5. a.name = 'lisa';
  6. console.log(a) // {name: 'lisa'}
  7. a = {
  8. name: 'kevin'
  9. };
  10. console.log(a) // 报错 Uncaught TypeError: Assignment to constant variable.

常量的命名

  1. 特殊的常量: 该常量从字面意义上,一定是不可变的,比如圆周率、月地距离和其他一些不可更改的配置。通常,该常量的名称全部使用大些写,多个单词之间用下划线分割。
    1. const PI = 3.14;
    2. const MOON_EARTH_DISTANCE = 384403.9;
  2. 普通常量:使用和之前一样的命名即可。
  3. 在循环中,循环变量不可以使用常量。(因为常量不可重新赋值,let声明的变量可以重新赋值)

    1. for(const i = 0; i < 10; i++){
    2. console.log(i) // 0 报错
    3. }
    4. // 补充 :for in 当中可以使用const(因为在每个块级作用域当中,使用的是全新的常量)
    5. let obj = {
    6. name:'lisa',
    7. age: 20
    8. }
    9. for(const prop in obj){
    10. console.log(prop) // name age
    11. }
    1. for(let i = 0; i < 3; i++){
    2. console.log(i) // 0 1 2
    3. }