ES6

ES6学习笔记1:const命令

Posted by mieruko on 2016-12-04

前言

这篇会比较短小,因为仅仅讲一个变量声明嘛~
不过还是想要感慨一下下哦,js进化了,连const都出来了,嘻嘻。

const基本特性

const这个声明头之前在强类型语言(比如c和java)中见过,它是声明一个常量。

那么js中的const是什么样的呢?

1
const a;

运行试试,发现报错。
说明const在声明变量时这个变量必须有值

1
2
const happy = true;
happy = false;

报错了,说明这个值不能被改变,一改就报错

const声明变量指向一个对象的时候要注意

看一下:

1
2
3
4
let user = {name:"xiaowanzi"};
const happy = user;
user.name = "maruko0713";
console.log("user:",user);

运行后发现没有报错,说明user的可以改变。
或者你直接这样做:

1
2
3
const user = {name: "xiaowanzi"};
user.name = "maruko0713";
console.log(user);

你会发现也没毛病。
啥,可是咱刚刚不是说const都是常量吗。
是的,const声明的都是常量,不可更改,此处不可更改的,是对象的内存地址

你要是这样:

1
2
const user = {name:"xiaowanzi"};
user = {};

分分钟报错给你看,因为此时user已经指向另一个内存地址了。

结语&&小贴士

作用域强调
const和let一样,都是块级作用域
出了当前代码块找不到的哦!