首先ES6包含了ES5里面的数据类型,有undefined,null,boolean,String,Number,Object,而ES6又新增了一种数据类型是Symbol,这种的Symbol数据类型是独一无二的,也是根本上防止属性名冲突。
Symbol代码
var a = Symbol( 'test'); var b = Symbol('test'); if(a == b){ console.log(a==b); }else{ console.log(a!=b); }
开始执行代码,输出的是true。(注意 “111” != 111 前面的是String后面的是Number)。
下面就要说的是声明变量的方法,有两种方法,一种是var,另一种是let。为什么要有两个呢,这就涉及到JavaScript了,JavaScript里面有闭包、作用域、原型链,造成这些根本的原因是由于JS里面的变量和值分别放在两块内存空间,以指针的方式去指向值的地址。假设你看了上一篇文章ES6初体验而你又不懂JavaScript那么还是先把ES6放一段时间吧,去看JavaScript至少知道什么是闭包、作用域和原型链,建议去读《JavaScript高级程序设计》。
let只作用域当前作用域且不会“变量提升!!!”,不外泄,let在一个作用域不能重复声明同一个变量。
声明常量则使用const命令,比如 const a = 5;如果你再把a =6;则会报错!!!如果你想要从其他模块引用这个常量那么请使用export和import。