zoukankan      html  css  js  c++  java
  • es6读书笔记(三)——const

    • const声明一个只读的常量。一旦声明,常量的值就不能改变。这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。
      const PI = 3.1415;
      PI // 3.1415
      
      PI = 3;
      // TypeError: Assignment to constant variable.
      
      const foo;
      // SyntaxError: Missing initializer in const declaration
      View Code
    • const的作用域与let命令相同:只在声明所在的块级作用域内有效。const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用。
    • if (true) {
        const MAX = 5;
      }
      
      MAX // Uncaught ReferenceError: MAX is not defined
      
      if (true) {
        console.log(MAX); // ReferenceError
        const MAX = 5;
      }
      View Code
    • const声明的常量,也与let一样不可重复声明。
      var message = "Hello!";
      let age = 25;
      
      // 以下两行都会报错
      const message = "Goodbye!";
      const age = 30;
      View Code

      本质上const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指针,const只能保证这个指针是固定的,至于它指向的数据结构是不是可变的,就完全不能控制了。因此,将一个对象声明为常量必须非常小心。

  • 相关阅读:
    CentOS虚拟机查询jdk路径
    jsp定义全局变量:读取properties文件
    mysql查看视图用户
    httpclient 方式提供接口
    maven打包添加依赖
    mysql死锁+解决
    mysql 安装-zip版
    input type="hidden" js获取不到值(document.getelementbyid OR $(#).val())
    Mybatis——choose, when, otherwise可以达到switch case效果
    《Linux就该这么学》第九天课程
  • 原文地址:https://www.cnblogs.com/tblj/p/6916543.html
Copyright © 2011-2022 走看看