• 技术文章 >web前端 >js教程

    JavaScript中如何声明常量

    醉折花枝作酒筹醉折花枝作酒筹2021-06-10 14:41:25原创67

    在js中,可以使用const关键字声明常量,语法格式为“const 名称=值;”。const声明创建一个值的只读引用,但这并不意味着它所持有的值是不可变的,只是变量标识符不能重新分配。

    本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

    const,用于声明常量。

    注意:定义的变量的时候,必须同时初始化,且其值之后不可以修改。

    const number = 42;
    
    try {
      number = 99;
    } catch (err) {
      console.log(err);
      // expected output: TypeError: invalid assignment to const `number'
      // Note - error messages will vary depending on browser
    }
    
    console.log(number);
    // expected output: 42

    结果:

    > TypeError: Assignment to constant variable.
    > 42

    语法

    const name1 = value1 [, name2 = value2 [, ... [, nameN = valueN]]];

    nameN常量名称,可以是任意合法的标识符。valueN常量值,可以是任意合法的表达式。

    描述

    此声明创建一个常量,其作用域可以是全局或本地声明的块。 与var变量不同,全局常量不会变为 window 对象的属性。需要一个常数的初始化器;也就是说,您必须在声明的同一语句中指定它的值(这是有道理的,因为以后不能更改)。

    const声明创建一个值的只读引用。但这并不意味着它所持有的值是不可变的,只是变量标识符不能重新分配。例如,在引用内容是对象的情况下,这意味着可以改变对象的内容(例如,其参数)。

    关于“暂存死区”的所有讨论都适用于let和const。

    一个常量不能和它所在作用域内的其他变量或函数拥有相同的名称。

    示例

    const 基本用法

    常量在声明的时候可以使用大小写,但通常情况下全部用大写字母。

    // 定义常量MY_FAV并赋值7
    const MY_FAV = 7;
    
    // 报错 - Uncaught TypeError: Assignment to constant variable.
    MY_FAV = 20;
    
    // MY_FAV is 7
    console.log('my favorite number is: ' + MY_FAV);
    
    // 尝试重新声明会报错
    // Uncaught SyntaxError: Identifier 'MY_FAV' has already been declared
    const MY_FAV = 20;
    
    // MY_FAV 保留给上面的常量,这个操作会失败
    var MY_FAV = 20;
    
    // 也会报错
    let MY_FAV = 20;

    块作用域

    注意块作用域的性质很重要

    if (MY_FAV === 7) {
      // 没问题,并且创建了一个块作用域变量 MY_FAV
      // (works equally well with let to declare a block scoped non const variable)
      let MY_FAV = 20;
    
      // MY_FAV 现在为 20
      console.log('my favorite number is ' + MY_FAV);
    
      // 这被提升到全局上下文并引发错误
      var MY_FAV = 20;
    }
    
    // MY_FAV 依旧为7
    console.log('my favorite number is ' + MY_FAV);

    常量要求一个初始值

    // 报错
    // Uncaught SyntaxError: Missing initializer in const declaration
    
    const FOO;

    常量可以定义成对象和数组

    const MY_OBJECT = {'key': 'value'};
    
    // 重写对象和上面一样会失败
    // Uncaught TypeError: Assignment to constant variable.
    MY_OBJECT = {'OTHER_KEY': 'value'};
    
    // 对象属性并不在保护的范围内
    // 下面这个声明会成功执行
    MY_OBJECT.key = 'otherValue'; // Use Object.freeze() to make object immutable
    
    // 也可以用来定义数组
    const MY_ARRAY = [];
    // 可以向数组填充数据
    MY_ARRAY.push('A'); // ["A"]
    // 但是,将一个新数组赋给变量会引发错误
    // Uncaught TypeError: Assignment to constant variable.
    MY_ARRAY = ['B'];

    【推荐学习:javascript高级教程

    以上就是JavaScript中如何声明常量的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:JavaScript 常量
    上一篇:javascript区分大小写吗 下一篇:JavaScript中比较运算符有哪些
    第16期线上培训班

    相关文章推荐

    • 浅谈Nodejs如何进行多线程处理• javascript怎么判断是否是json格式• js如何添加css样式• jsp和html的区别有哪些• jsp和javascript是一个东西吗

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网