您的位置:首页> 前端教程> ES6教程
文章导航

JavaScript const 命令

2018-8-30 00:21| 作者: admin| 查看: 1963| 评论: 0|来自: 蚂蚁部落

常量在众多主流编程语言中是一个普通概念。

但JavaScript比较特别,直到ES2015才改变无常量的状况。

使用const可以声明一个常量,代码演示如下:

[JavaScript] 纯文本查看 复制代码
const url = "softwhy.com";

上面代码声明一个常量url并赋值为"softwhy.com"。

看上去和声明一个变量没有什么区别,既然是一个单独的语法结构,自然有其特点。

const和let命令有如下共同特性:

(1).创建块级作用域。

(2).不存在提升现象。

(3).temporal dead zone。

(4).不允许在同一作用域内重复声明。

(5).不会成为全局属性。

这些共同特点,本文就不再介绍,具体参阅JavaScript let 命令一章节。

一.常量被声明后,值无法被改变:

[JavaScript] 纯文本查看 复制代码运行代码
const url = "softwhy.com";
console.log(url);
url="www.softwhy.com";
console.log(url);

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201808/30/002303c3ln3aljleanamsn.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上述代码中声明了一个常量url,在声明的同时赋值。

但是由于常量不允许后续再修改它的值,所以代码会报错。

二.常量在声明的同时必须赋值:

首先看一段代码实例:

[JavaScript] 纯文本查看 复制代码
let webName;
webName="蚂蚁部落";

上面的代码中,变量的声明和赋值是分开的,但是常量中是不允许这种操作。

代码如下:

[JavaScript] 纯文本查看 复制代码
const url;

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201808/30/002356xfxxj9pbk5pn2ixb.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上面截图的报错已经说明了一切,这一点要注意。

三.常量指向一个对象:

这涉及到值类型与应用类型的区别,具体可以参阅JavaScript值类型和引用类型一章节。

首先看一下代码实例:

[JavaScript] 纯文本查看 复制代码运行代码
var obj = {
  webName: "蚂蚁部落",
  url:"www.softwhy.com"
}
const antzone = obj;
obj.address = "青岛市南区";
console.log(antzone.address);

分析如下:

声明一个对象直接量,并将此对象的引用地址赋值给变量obj。

然后声明一个常量,并赋值为obj,也就是此常量的值是对象直接量的引用地址。

最后对象的属性值虽然被改变,但是存储在obj中的引用地址并没有改变,可以形象的比喻如下:一个地址指向一个具体房子,青岛市南区256号甲17号楼3单元503号,虽然里面的主人改变了,但是这个地址并没有发生改变,而常量的值只是存储的这个房子地址而已,实质常量值没有发生改变。

2

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (2 人)

最新评论

返回顶部