Symbol是类似于字符串的原始数据类型,表示独一无二的值。可以保证不会与其他属性名冲突。
JS的七种原始数据类型:
-
1.undefined
-
2.Null
-
3.布尔值(Boolean)
-
4.字符串String
-
5.数值number
-
6.对象Object
-
7.Symbol
关于Symbol的方法:
-
1.Symbol()
-
2.Symbol.for()
-
3.Symbol.keyFor()
1.Symbol语法
-
Symbol值通过Symbol函数生成。例:
let s=Symbol(); console.log(typeof s);//symbol
-
每一个Symbol值都是不相等的,所以Symbol可以作为标识符,用于对象的属性名,就能保证不会出现同名的属性。
-
Symbol 作为属性名,该属性不会出现在
for...in
、for...of
循环中,也不会被Object.keys()
、Object.getOwnPropertyNames()
、JSON.stringify()
返回。但是,它也不是私有属性,有一个Object.getOwnPropertySymbols
方法,可以获取指定对象的所有 Symbol 属性名。Object.getOwnPropertySymbols
方法返回一个数组,成员是当前对象的所有用作属性名的 Symbol 值。(参考阮一峰老师的ECMA标准)例:
const obj =