1 第七種數(shù)據(jù)類型Symbol

ES6引入了一種新的原始數(shù)據(jù)類型Symbol,表示獨(dú)一無二的值。它是JavaScript語言的第七種數(shù)據(jù)類型,前六種是:Undefined、Null、布爾值(Boolean)、字符串(String)、數(shù)值(Number)、對(duì)象(Object)。

    let s = Symbol();
    console.log(typeof s); //"symbol"

Symbol類型變量通過Symbol()方法來構(gòu)建(不能使用new),另外該方法可以接受一個(gè)字符串類型的參數(shù)作為該Symbol的描述

    let s1 = Symbol('tag');
    let s2 = Symbol('tag');
    
    s1 == s2; //false,參數(shù)僅僅作為描述,就算相同描述的兩個(gè)Symbol也是不同的

Symbol類型使用注意:

    let s = Symbol();
    
    "symbol:" + s; //報(bào)錯(cuò),無法和字符串運(yùn)算
    
    s + 2;  //報(bào)錯(cuò),無法和字符串運(yùn)算
    
    s1.toString(); //"Symbol(tag)",Symbol顯示轉(zhuǎn)換為字符串類型是可以的
    
    if(s){
        ...         //可以轉(zhuǎn)換為bool
    }

說了這么多,ES6中引入Symbol到底是用來干嘛呢?

網(wǎng)友評(píng)論