symbol声明的类型独一无二
概念:表示独一无二的值,永远不相等
s1 = Symbol()
s2 = Symbol()
s1 !== s2
基本使用: 通过Symbol函数生成,得到一个symbol类型的值
使用场景:一般用在对象属性名,确保在对象中不会出现同名的属性,防止不小心修改或者覆盖。
symbol中的标识放字符串
Symbols 与 JSON.stringify()
1.当使用 JSON.strIngify() 时,以 symbol 值作为键的属性会被完全忽略
JSON.stringify({[Symbol("foo")]: "foo"});
// '{}'
2.Symbol 数据类型的另一特点是隐藏性,for···in,object.keys() 不能访问
let id = Symbol("id");
let obj = {
[id]:'symbol'
};
for(let option in obj){
console.log(obj[option]); //空
}
undefined
Object.keys(obj)
[]
3.不能转换成数字类型
Number()
parseint()
4.可以显式转换成字符串,不可以隐式。不能参与运算(字符串,数字)