ES6学习笔记

ES6常量,在ES5中的写法

2019-02-20  本文已影响0人  Chaos_YM

最近复习知识,在慕课看了ES6的课程。

ES6中const常量的用法不难,有趣的是,在ES5中写一个常量的方法:

解释:

1,以上代码中,PI2是变量名,value是变量值;

2,JS中,全局变量等同于window的属性(比如 var a=1; 与 window.a = 1来创建a变量并使其值为1是一样的),所以创建window的属性PI2,并设置了这个全局变量的值为3.1415926,使其不可写,只可读,于是全局变量aNumber就变成常量了。

当然,这只是利用ES5创建一个不可修改的定值。

与ES6中的常量的定义相差甚远,感觉慕课的哪个老师有点取巧;

毕竟const定义的常量,存在块级作用域,暂时性死区,没有变量提升,不可重复声明等特性;

而且,本质上,const定义的常量是保证了此变量指向的内存地址所保存的数据不变;

当数据为简单类型时(数值,字符串,布尔值),等同于常量,和上面ES5效果相同;

对于复合数据类型(对象,数组),const只是保证了指针的固定,此时数据结构还是可以改变的

(若const a=[];   a.push()和a.xx = xx;是可执行的,a = [....]会报错,即所谓,地址不变,结构可变),

除非使用object.freeze()方法。

上一篇下一篇

猜你喜欢

热点阅读