css

发布时间:2019-08-15 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了css脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

ES6一个名不见经传的Symbol()方法

symbol的中文意思是:符号;象征;标志;记号等。

说到JavaScript原生数据类型,我们通常想到的有这6种:undefined、nullboolean、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,请注明来意。