Symbol类型和属性
Symbol类型和属性
基本数据类型:
- Number
- String
- Boolean
- Object
- Null
- Undefined
原始数据类型:Symbol
- 表示独一无二的值,可以用来定义对象的唯一属性名
- 不支持 new Symbol() Symbol类型的值可以通过直接调用Symbol函数创建
不允许在 Symbol 前使用 new,symbol 类型的值可通过直接调用 Symbol 函数创建
1 let s=Symbol('s!'); 2 console.log(s); //输出Symbol() 3 console.log(typeof s); //输出Symbol类型
Symbol 函数调用后生成的值是唯一的
1 let s1=Symbol(), 2 s2=Symbol(); 3 console.log(s1===s2)
Symbol 值不能与其他类型值进行隐式转换,否则会报错;需要提前显示转换匹配的类型
1 let s=Symbol(); 2 console.log(s.toString()+'变量'); //字符串 3 console.log(String(s)+'变量'); 4 console.log(!s); //布尔值
Symbol 值的唯一性,用于 Object 的属性中,可以确保不会出现同名属性
1 let x=Symbol(), 2 y=Symbol(); 3 4 let fn =Symbol(); 5 let obj={ 6 [x]:'Mr.Lee', 7 [y]:'Mr.Li', 8 [fn](){ 9 return 'fn' 10 } 11 }; 12 console.log(obj); 13 console.log(obj[x]); //调用 14 console.log(obj[fn]()); //方法名调用

浙公网安备 33010602011771号