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到底是用來干嘛呢?