Symbol

 let a=1;
    let b=1;
    console.log(a==b);   //效果:true

    let x=Symbol('this is x');

    console.log(typeof x);   //效果:symbol
    let y=Symbol('y');
    console.log(x==y);   //效果: false
    //这里 Synbol 前面不能运用 new 操作符。

    //防备对象的属性被改动
 let sz={name:'曹伟',age:19,[Symbol('xh')]:'007'};
        sz['name']='caowei123';
        sz[Symbol('xh')]='009';

    console.log(sz);   //效果:Objectage: 19name: "caowei123"Symbol(xh): "007"Symbol(xh): "009"__proto__: Object
   
    console.log(sz.name);              //效果:caowei123
关于数据范例能够参阅javascript援用范例和基础范例详解一章节,
let sVal = Symbol();
console.log(typeof sVal)

上面的代码的输出值是’symbol’;

运用Symbol()函数能够建立一个symbol范例值。

前面不能运用new,不然会报错;由于Symbol是一种值范例数据,这也是很好明白的.Symbol()用作Symbol值的形貌,也能够明白为键(key),代码实例以下:


let s1 = Symbol('剧本之家');
let s2 = Symbol("2015");

经由过程键就能够比较轻易的辨别两个Symbol值。
键雷同的两个Symbol值并不雷同:

let s1 = Symbol("剧本之家");
let s2 = Symbol("剧本之家");
console.log(s1 == s2);

上面两个Symbol值是不相等的。
Symbol值不能够被隐式转换为字符串范例,代码实例以下:

let s = Symbol("剧本之家");
//报错
`antzone ${sym}`
//报错
"antzone" + sym
    原文作者:骚胖
    原文地址: https://segmentfault.com/a/1190000010181541
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞