javascript数据类型有哪几种:关于JavaScript第七种数据类型Symbol
javascript数据类型有哪几种:关于JavaScript第七种数据类型Symbolvar s1 = Symbol()【独一无二】【值】let d = Symbol()typeof d // 输出"symbol"
点击右上方红色按钮关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!
自从ES6引入了新的数据类型Symbol之后,JavaScript总共就拥有了七种数据类型:undefined、Null、Boolean、String、Number、Object,Symbol。
关于Symbol只需要关注它的三个关键点,不会太深入的去挖它。
第一,它是干什么用的?用来表示独一无二的值。Symbol值是通过Symbol函数生成的。
【值】
let d = Symbol()
typeof d // 输出"symbol"
【独一无二】
var s1 = Symbol()
var s2 = Symbol()
s1 === s2 // 输出false
可见自已都不等于自己的类型。
【作用】
如上面这个例子所示,对象的键是Symbol变量,而Symbol变量是不能被重复声明的,这种情况下对象属性定义时属性键就不会被重复定义了。这就是Symbol的作用,当然,仍可以通过object[n]去读取对象的属性。
第二,对象属性名访问总共有三种:
var mySymbol = Symbol();
【第一种写法】
var a = {};
a[mySymbol] = 'Hello!';
【第二种写法】
var a = {
[mySymbol]: 'Hello!'
};
【第三种写法】
var a = {};
Object.defineProperty(a mySymbol { value: 'Hello!' });
// 以上写法都得到同样结果
a[mySymbol] // "Hello!"
特别注意:不能用点,如a.mySymbol
第三,遍历Symbol值在日常逻辑代码中少不了遍历。然而,遍历Symbol就两种方法:
【Object.getOwnPropertySymbols】
Object.getOwnPropertySymbols方法返回一个所有用作属性名的Symbol值的数组。
【Reflect.ownKeys】
Reflect.ownKeys方法可以返回包括常规的和Symbol所有类型的键名。
总结一下:
关于Symbol类型,这里并没有进行深入挖,不过知道上面这些已经足够了。这里同时也让大家对symbol类型有一个完整性的认识。