• JavaScript 学习10.使用const声明常量 上海


    前言

    const 用于声明一个或多个常量,声明时必须进行初始化,且初始化后值不可再修改。

    const 声明常量

    const定义常量与使用let 定义的变量相似:

    • 二者都是块级作用域
    • 都不能和它所在作用域内的其他变量或函数拥有相同的名称

    两者还有以下两点区别:

    • const声明的常量必须初始化,而let声明的变量不用
    • const 定义常量的值不能通过再赋值修改,也不能再次声明。而 let 定义的变量值可以修改。

    块级作用域

    const定义常量也有块级作用域

    var a = 10;
    const x = 'world';
    if (a > 0){
        const x = 'hello';
        console.log(x);   // 这里输出 x 为 hello
    }
    console.log(x);  // 这里输出 x 为 world
    

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

    {
        var x = 'world';
        const x = 'hello';  // 报错
    }
    

    初始化

    const声明的常量必须初始化,而let声明的变量不用

    // 错误写法
    const PI;
    PI = 3.14
    

    以下是正确写法,声明的同时赋值

    // 正确写法
    const PI = 3.14;
    

    初始化后值不可再修改

    const PI = 3.14;
    PI = PI + 1; // 报错
    

    并非真正的常量

    使用 const 定义的字符串和数字类型是不可变的,当定义一个对象或数组时,里面的内容是可以修改的。

    const 定义对象修改属性

    const 定义对象可以修改属性

    const person = {
        name: "yoyo",
        age: 20,
    };
    person.name = 'hello';
    person.age = 30;
    console.log(person.name);   // hello
    console.log(person.age);     // age
    

    但是不能给对象重新赋值

    const person = {
        name: "yoyo",
        age: 20,
    };
    person = {name: 'xx', age: 23};  // 报错
    

    const 定义数组修改成员

    const 定义数组可以修改成员的值

    const a = ['hello', 'world'];
    
    // 修改元素
    a[0] = "yoyo";
    console.log(a);  //   ['yoyo', 'world']
    a.shift('12');
    console.log(a);  //   ['world']
    a.unshift('xx');
    console.log(a);  //   ['xx', 'world']
    a.push('yy');
    console.log(a);  //   ['xx', 'world', 'yy']
    

    同样不能对常量数组重新赋值:

    const a = ['hello', 'world'];
    a = ['x', 'y']; // 报错
    

    总结:常量就是值(内存地址)不能变化的量,const定义常用需给初始值。

  • 相关阅读:
    CSS overflow 隐藏属性
    CSS visibility 隐藏属性
    多线程中的detach
    多线程中join的解释(转)
    lib 和 dll 的区别、生成以及使用详解:(包括变量,函数,类导出3种情形)(转)
    堆和栈的区别
    ZMQ相关
    不同类型的指针加减(就是向前或向后移动)[转]
    memset函数及其用法,C语言memset函数详解
    zmq中的router和dealer
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/16283474.html
Copyright © 2020-2023  润新知