美文网首页
let、const二者异同点

let、const二者异同点

作者: Mancaulist | 来源:发表于2019-01-18 18:14 被阅读0次

参考文章

相同点

  • 只在声明所在的块级作用域内有效。
  • 不提升,同时存在暂时性死区,只能在声明的位置后面使用。
  • 不可重复声明。

不同点

  • let声明的变量可以改变,值和类型都可以改变;const声明的常量不可以改变,这意味着,const一旦声明,就必须立即初始化,不能以后再赋值。

    const i ; // 报错,一旦声明,就必须立即初始化
    const j = 5;
    j = 10; // 报错,常量不可以改变
    
  • 数组和对象等复合类型的变量,变量名不指向数据,而是指向数据所在的地址。const只保证变量名指向的地址不变,并不保证该地址的数据不变,所以将一个复合类型的变量声明为常量必须非常小心。

    const arr = [];
    arr = [1,2,3];
    // 报错,[1,2,3]与[]不是同一个地址
    
    const arr = [];
    arr[0] = 1;
    arr[1] = 2;
    arr[2] = 3;
    console.log(arr.length); // 输出:3
    // 不报错,变量名arr指向的地址不变,只是数据改变
    

若想让定义的对象或数组的数据也不能改变,可以使用object.freeze(arr)进行冻结。冻结指的是不能向这个对象或数组添加新的属性,不能修改已有属性的值,不能删除已有属性。

const arr = []; //这里用let也可被冻结
Object.freeze(arr);
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
console.log(arr.length); // 输出:0
// 不报错,但数据改变无效

相关文章

  • let、const二者异同点

    参考文章 相同点 只在声明所在的块级作用域内有效。 不提升,同时存在暂时性死区,只能在声明的位置后面使用。 不可重...

  • 2018-09-13

    一、let和const const和let的异同点 相同点:const和let都是在当前块内有效,执行到块外会被销...

  • 1.let和const

    原文地址其他参考资料 let:声明变量 const:声明只读常量 二者共同点: 只在代码块内有效,并且在用let或...

  • es6 :let const 解构赋值

    let,const let和const是es6新增的两个变量声明关键字,与var的不同点在于:(1)let和con...

  • ES6基本的语法(二) const

    1.2 const const 于 let 的共同点不在下面叙述暂时性死区、不能重复声明。 const 是用来常量...

  • es6特性

    1 let const 1.1 let let 声明的变量是在其块级作用域起作用,与 var 相似。二者之间最主要...

  • var、let、const三者的比较

    var、let、const三者在声明变量的区别: let和var的不同点: 1、出现了块级作用域,ES...

  • ES6

    let const let const 没有变量提升let 块级作用域const 常量 模板语言, restfu

  • 工作中常用的 ES6 语法

    变量声明 let 和const 不用var, 用const声明只读变量,let声明变量。let和const都是块级...

  • let和const的区别

    let和const的区别 相同点:0、ES6中的命令,声明的变量或常量不再是全局变量的属性或方法。let a=0 ...

网友评论

      本文标题:let、const二者异同点

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