博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ES6 const
阅读量:7282 次
发布时间:2019-06-30

本文共 987 字,大约阅读时间需要 3 分钟。

const声明一个只读的常量。一旦声明,常量的值就不能改变。

const PI = 3.1415;PI // 3.1415PI = 3;// TypeError: Assignment to constant variable.

const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。

const PI;// Missing initializer in const declaration

上面代码表示,对于const来说,只声明不赋值,就会报错。

const的作用域与let命令相同:只在声明所在的块级作用域内有效。

if (true) {    const MAX = 5;}  MAX // Uncaught ReferenceError: MAX is not defined

const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用。

if (true) {    console.log(MAX); // ReferenceError    const MAX = 5;}

const声明的常量,也与let一样不可重复声明。

var message = "Hello!";let age = 25;// 以下两行都会报错const message = "Goodbye!";const age = 30;

const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指针,const只能保证这个指针是固定的,至于它指向的数据结构是不是可变的,就完全不能控制了。因此,将一个对象声明为常量必须非常小心。

const foo = {};// 为 foo 添加一个属性,可以成功foo.prop = 123;console.log(foo.prop) // 123
const a = [];a.push('Hello'); // 可执行console.log(a[0]); // Helloa.length = 0;    // 可执行console.log(a[0]); // undefined

转载地址:http://aykjm.baihongyu.com/

你可能感兴趣的文章
《软件开发这点儿事儿 软件开发工具手册》 - 书摘精要
查看>>
实现HTTPS系列第二弹之【非对称加密,公钥私钥,数字签名,OpenSSL及HTTPS等概念简介】...
查看>>
C++头文件多次包含 变量,函数重定义解决方案
查看>>
WSFC2012R2滚动升级至WSFC2016
查看>>
Android版手机qq 图片名和qq号码的联系规则
查看>>
OpenLDAP schema导入注意事项
查看>>
Apache不指定记录文件日志
查看>>
asp导出记录到execl/csv
查看>>
Data Structures and Algorithms in Python:Python中的数据结构和算法
查看>>
Docker大行其道—初识
查看>>
Python 守护进程
查看>>
CentOS 6.0 下 VNC 配置方法
查看>>
linux 所有命令不能用
查看>>
Android开发之 。。各种Adapter的用法
查看>>
astyle使用基础教程
查看>>
内核中的同步与互斥
查看>>
linux下安装SVN和MAVEN,并依赖MAVEN环境打包MAVEN项目
查看>>
mysql的备份和恢复
查看>>
Nginx 配置 SSL 证书 + 搭建 HTTPS 网站教程
查看>>
iOS自动检测版本更新
查看>>