zoukankan      html  css  js  c++  java
  • ES6 之 const 命令 Better

    • 只读常量
    • 块级作用域
    • 不存在变量提升
    • 暂时性死区
    • 不允许重复声明

    很多特性与let相同:https://www.cnblogs.com/huangtq/p/14439416.html

    1. 只读常量

    const声明一个只读的常量。一旦声明,常量的值就不能改变。

    const PI = 3.1415;
    PI // 3.1415
    
    PI = 3;
    // TypeError: Assignment to constant variable.

    const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。

    const foo;
    // SyntaxError: Missing initializer in const declaration

    1. 块级作用域

    const的作用域与let命令相同:只在声明所在的块级作用域内有效。

    if (true) {
      const MAX = 5;
    }
    
    MAX // Uncaught ReferenceError: MAX is not defined

    2. 不存在变量提升

    const命令 let命令相同:声明的常量也是不提升。

    // var 的情况
    console.log(foo); // 输出undefined
    var foo = 2;
    
    // const 的情况
    console.log(bar); // 报错ReferenceError
    const bar = 2;

    3. 暂时性死区(temporal dead zone,简称 TDZ)

    let 命令相同:只要块级作用域内存在 const 命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。

    var tmp = 123;
    
    if (true) {
      console.log(tmp); // ReferenceError
      const tmp = 1;
    }

    “暂时性死区”也意味着 typeof不再是一个百分之百安全的操作。

    typeof x; // ReferenceError
    const x;

    作为比较,如果一个变量根本没有被声明,使用 typeof反而不会报错。

    typeof undeclared_variable // "undefined"

    4. 不允许重复声明

     const声明的常量,也与 let一样不可重复声明。

    var message = "Hello!";
    let age = 25;
    
    // 以下两行都会报错
    const message = "Goodbye!";
    const age = 30;
  • 相关阅读:
    JQ常用代码
    websocket练习
    动软生成器 model生成模板
    动软生成器 Liger model生成模板
    SVN各种错误提示产生原因及处理方法大全
    winfom实现关闭后一直运行
    在yii中使用分页
    html文字垂直居中
    给浏览器网页标签页添加图标
    html 遇到margin居中的问题
  • 原文地址:https://www.cnblogs.com/huangtq/p/14440378.html
Copyright © 2011-2022 走看看