码迷,mamicode.com
首页 > 其他好文 > 详细

symbol

时间:2019-09-01 20:17:31      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:通过   prope   数据类型   报错   ===   转换   描述   str   参数   

symbol,代表独一无二的值,即类型为symbol的值,是独一无二的。

第6种基本类型,类似于字符串。

let a=Symbol();
let b= Symbol();
console.log(typeof a); //symbol
console.log(a===b) //false;

 

通过Symbol函数生成,不能使用new,这是因为原始类型的显式包装器对象自ES6开始已不再支持,但已有的原始包装器对象,如new Boolean、new String仍然保留。

 

可接受一个字符串作为参数,表示对其的描述,主要方便于在控制台显示,及转换为字符串时容易区分

备注:输出时不带引号

let a=Symbol ("sa");
console.log(a); //Symbol(sa)

 

多用于对象的属性名,能防止被覆盖修改,必须用方括号扩住,且无法通过访问属性名或for in 的方式访问到

Object.getOwnPropertySymbols(对象)能获取到对象的symbol属性数组

let a= Symbol("aa")
let b= {
  [a]: 123,
  c: 1  
}
for(let i in b){
  console.log(i)  //c
}
console.log(Object.getOwnPropertySymbols(b)) //[Symbol[aa]]

 

 可做数据类型的转换,但不能参与任何运算

let a= Symbol("aa")
console.log(a.toString()) //Symbol(aa)
console.log(a+1) //报错

 

symbol

标签:通过   prope   数据类型   报错   ===   转换   描述   str   参数   

原文地址:https://www.cnblogs.com/yanze/p/11443397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!