快捷搜索:  汽车  科技

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

可见自已都不等于自己的类型。

【作用】

javascript数据类型有哪几种:关于JavaScript第七种数据类型Symbol(1)

如上面这个例子所示,对象的键是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值的数组。

javascript数据类型有哪几种:关于JavaScript第七种数据类型Symbol(2)

【Reflect.ownKeys】

Reflect.ownKeys方法可以返回包括常规的和Symbol所有类型的键名。

javascript数据类型有哪几种:关于JavaScript第七种数据类型Symbol(3)

总结一下:

关于Symbol类型,这里并没有进行深入挖,不过知道上面这些已经足够了。这里同时也让大家对symbol类型有一个完整性的认识。

猜您喜欢: