博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Symbol
阅读量:6854 次
发布时间:2019-06-26

本文共 1033 字,大约阅读时间需要 3 分钟。

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://www.cnblogs.com/GJcaowei/p/7162370.html

你可能感兴趣的文章