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]()); //方法名调用

 

posted @ 2021-11-27 23:44  .Nice  阅读(148)  评论(0)    收藏  举报