脚本宝典收集整理的这篇文章主要介绍了css,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
ES6一个名不见经传的Symbol()方法
symbol的中文意思是:符号;象征;标志;记号等。
说到JavaScript原生数据类型,我们通常想到的有这6种:undefined、null、boolean、string、number、object。而symbol是ES6新增的一个原生数据类型。
tyPEof Symbol();
而Symbol本身又是一个方法。
但Symbol不能作为构造函数使用。
new Symbol();
只有一个目的——作为对象属性的唯一标识符,防止对象属性冲突发生。
因为Symbol()返回值是唯一的,也就是:
Symbol('description') === Symbol('description'); // 返回值是false
let info1 = {
name: '小明',
age: 24,
job: '公司前台',
[Symbol('description')]: '喜欢游泳'
}
let info2 = {
[Symbol('description')]: '热情似火'
}
let target = {};
Object.assign(target, info1, info2);
我们可以使用Object.getOwnPropertySymbols(obj)这个方法进行获取
Symbol在和对象使用的时候,往往离不开JS中的数组括号[],例如:
VAR smy = Symbol();
var info = {
smy: 'x',
[smy]: 'y'
};
此时:
console.LOG(info.smy); // 输出'x'
console.log(info['smy']); // 输出'x'
console.log(info[smy]); // 输出'y'
可以添加属性的
var smy = Symbol();
smy.description = '描述';
Symbol值可以显式转为字符串,也可以转为布尔值,但是不能转为数值
@H_304_174@var smy = Symbol();
=> +smy
隐式地创建一个新的string类型的属性名也会报错,例如Symbol("foo") + "bar" 将抛出一个TypeError
使用宽松相等时, Object(sym) == sym返回值是true。注意这里外面套的是Object();
Symbols在for...in迭代中不可枚举,如果想要达到效果,借助Object.getOwnPropertySymbols(obj)这个方法。
当使用JSON.strIngify()时以symbol值作为键的属性会被完全忽略,示意代码:
JSON.stringify({[Symbol("foo")]: "foo"}); // '{}'
以上是脚本宝典为你收集整理的css全部内容,希望文章能够帮你解决css所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。