美文网首页
ES6中神奇的const

ES6中神奇的const

作者: 技术小王 | 来源:发表于2021-08-14 13:07 被阅读0次

小编在之前的文章更新过关于es6中,定义变量的关键字,let和const,今天在找资料的时候,发现了const定义变量的新特点,今天特来用一篇文章来记录下。大家还可以关注我的微信公众号,蜗牛全栈。

我们都知道const是用来定义常量的,定义之后不可以改变,但是这个不可改变,只限于基本数据类型。在用const定义后的基本数据类型变量,再改变的时候就会出现问题,比如

const num1 = 2
num1 = 3  // Uncaught TypeError: Assignment to constant variable.

对于引用数据类型,主要是数组和对象,会有这样“神奇”的现象

const arr = []
arr.push(666)
console.log(arr) // [666]

const obj = {}
obj.name = "lilei"
console.log(obj) // {name:"lilei"}

为什么const没有对他们一视同仁呢?究其原因还是因为基本数据类型,像Number类型、Boolean类型是存储在栈内存中,而引用数据类型,是存储在堆内存中,变量直接引用堆内存的地址。这也就导致了两种数据类型的拷贝情况完全不同。这也就解释了const定义的引用数据类型可以再次修改,因为变量一直指向在堆内存中的地址,即使数据改变了,但是地址没改变,所以引用数据类型,用const定义之后,也可以修改。又是离前端大神更进一步的一天,加油!

参考文章: https://www.cnblogs.com/0955xf/p/12634672.html

相关文章

  • ES6中神奇的const

    小编在之前的文章更新过关于es6中,定义变量的关键字,let和const,今天在找资料的时候,发现了const定义...

  • ES6 const命令

    本节我们学习 ES6 中的 const 命令,const 也是 ES6 中新增的一个命令。const 声明一个只读...

  • ES6 const命令声明变量

    本节我们学习 ES6 中的 const 命令,const 也是 ES6 中新增的一个命令。const 声明一个只读...

  • ES6语法

    Tags: ES6 [TOC] ES6 常量 //ES6 const PI=3.1415926;//const声明...

  • ES6中的新语法规范数组去重

    ES6中的新语法规范 let / const class 创建类 import / export :ES6 Mod...

  • var、let、const的区别

    let和const是es6中的新变量。 const是常量,常量不可更改,试图更改常量会报错, const只在当前块...

  • es6

    const es6 中的const和其他语言的常量很像,一经赋值不可改变。但是不同的是const不允许修改绑定但是...

  • es6重点介绍

    ES6 的变量声明 ES6 中新增了 let 和 const 来定义变量: var:ES5 和 ES6中,定义全局...

  • js 中声明常量关键字 var、let、const

    js 中声明常量的关键字:var、let、const,其中 let 和 const 是 ES6 中新增的关键字。 ...

  • ES6(let 与 const)

    ES6中引入了let 和 const来声明变量,我们来看下let 和 const 的使用 一、let let定义的...

网友评论

      本文标题:ES6中神奇的const

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