(1)、Symbol介绍
在介绍Symbol之前,我们简单介绍一下JavaScript的数据类型:
JavaScript有6中数据类型,分别是:String字符串类型;Number数字类型;Object对象类型;Boolean布尔值类型;Null空值;Undefined 未定义;
这6种类型写过代码的同学都不会陌生,它们都有各自的用途。而ES6给我们带来一种全新的数据类型:Symbol。每一种全新的事物的诞生都是为了解决某种问题。Symbol的初衷:解决对象的属性名冲突。
从上面代码案例看到,我们用一个Symbol( )函数来创建一个symbol类型的变量,我们打印了一下变量sm,得到的结果是控制台输出:Symbol( ),它代表着一个独一无二的值,虽然我们看不到它长什么样子,但基本上,它有点类似字符串。
接着,我们用typeof来检测一下变量sm的类型,得到的结果是:symbol。
我们定义两个symbol类型的变量sm1,sm2,然后用全等符号===(也称严格相等,)进行比较,得到的是false。也就是他们都是独一无二的值,并不相等。
接着,我们分别打印两个变量,控制台输出的都是Symbol( ),看起来长得一模一样,实际是不相等的。
两个不一样的值,控制台输出的一样,这样无疑给我们开发调试带来一定的不便,有没有办法让他们看起来不一样呢?
有的,Symbo( )函数接受参数,用于对实例值的描述。我们试试看: