js数据类型

JS数据类型

  • JS数据类型有两种:基本数据类型,引用类型

基本数据类型(SNBNUS)

  • 字符串string,数字number,布尔boolean,null,undefined,Symbol

引用类型(OAF)

  • 对象Object,数组Array,函数Function。

扩展

NaN是什么类型?

  • Number类型,但不是一个具体的数字。

null和undefined的区别?

  • null隐式转换的是0,而undefined隐式转换的是NaN。

Symbol的用法?

  • Symbol 是 ES6 引入的一种新的基本数据类型,表示独一无二的值。

  • Symbol 本质上是一种唯一标识符,可以作对象的唯一属性名,这样其他人就不会改写,或覆盖你设置的属性值。

          const a = Symbol();
          console.log(a); // Symbol()
    
          const b = Symbol("test");
          console.log(b); // Symbol('test');
    
          const c = Symbol();
          console.log(c == a); // false
          console.log(c.toString()); // 'Symbol()'
    
          var mySymbol = Symbol();
    
          //第一种写法
          var a1 = {};
          a1[mySymbol] = "Hello!";
          console.log(a1[mySymbol]); // Hello!
    
          //第二种写法
          var a2 = {
            [mySymbol]: "Hellow!",
          };
          console.log(a2[mySymbol]); // Hellow!
    
          //第三种写法
          var a3 = {};
          Object.defineProperty(a3, mySymbol, { value: "Hellow!" });
          console.log(a3[mySymbol]); // Hellow!
    
    
Symbol 需要注意
  1. Symbol函数前不能使用new关键字,否则会报错,这是因为symbol是原始数据类型,而不是对象,所以不能添加属性。
  2. Symbol可以接受一个字符串作为参数,表示对Symbol的描述,主要是在控制台显示时容易区分。这个参数可以不加,如果不加在控制台输出就是两个Symbol()不利于区分,加上参数就是为了加以区分。
  3. Symbol 是唯一的与谁都不相等。
  4. Symbol不能与其他值进行运算,否则会报错。
  5. Symbol 可以显示的转为字符串,布尔值,但是不能转为数字,转为数字会报错。
  6. 由于每一个Symbol都不相同,那么可以作为标识符作为对象的属性名,保证不会出现同名的的属性。
  7. Symbol值作为对象的属性名时不能使用点运算符,同理,在对象的内部使用Symbol值时也必须放在方括号中。
posted @ 2022-02-18 01:56  HuangBingQuan  阅读(214)  评论(0编辑  收藏  举报