美文网首页
let和const声明的区别

let和const声明的区别

作者: 祈念念念 | 来源:发表于2019-01-03 13:43 被阅读0次

    title: let和const声明的区别
    date: 2018-10-20 18:32:15
    tags: [JavaScript]
    categories: JavaScript


    let 命令

    1. let所声明的变量只在其所在的代码块内有效,比如for循环的计数器就很适合使用let命令。
    2. 不存在变量提升
    3. 暂时性死区:使用let命令声明变量完成之前,该变量都是不可用的。
    4. 在相同作用域中不允许重复声明同一个变量

    const 命令

    let与const都是只在声明所在的块级作用域内有效。

    1. 声明一个只读常量,一旦声明,常量的值就不能改变。
    2. 实际上const保证的并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。
    • 对于简单类型的数据,值就保存在变量指向的那个内存地址。
    • 而对于复合类型的数据,变量指向的内存地址,保存的只是一个指针,const保证这个指针固定,而它指向的数据结构是不能控制的。

      举例:
    const a;  // 报错,一旦声明变量就应该立即赋值
    
    const b = 2;
    b = 3  // 报错,声明后不能重新赋值
    
    const array1 = [];
    array1 = [1,2,3]  // 报错,数组是复合类型,指向的地址不能发生改变,应始终指向[]所在的地址,而[1,2,3]与[]不是同一个地址
    
    const array2 = [];
    array2[0] = 1
    array2[1] = 2
    array2[2] = 3  // 不报错,array2指向的地址不变,改变的只是其内部数据
    

    相关文章

      网友评论

          本文标题:let和const声明的区别

          本文链接:https://www.haomeiwen.com/subject/wgatrqtx.html