成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

ES6的Symbol數(shù)據(jù)類型的學(xué)習(xí)

SimpleTriangle / 463人閱讀

摘要:新的原始數(shù)據(jù)類型,表示獨(dú)一無(wú)二的值其他的數(shù)據(jù)類型包括基本知識(shí)注意不能使用,因?yàn)樗皇菍?duì)象參數(shù)是一個(gè)對(duì)象,就會(huì)調(diào)用該對(duì)象的方法,然后才生成一個(gè)值值不可以運(yùn)算可以顯式轉(zhuǎn)為字符串可以轉(zhuǎn)為布爾值,但是不能轉(zhuǎn)為數(shù)值可以防止某一個(gè)鍵被改寫或覆蓋使用值定

新的原始數(shù)據(jù)類型Symbol,表示獨(dú)一無(wú)二的值
其他的數(shù)據(jù)類型包括undefined,null,string,number,boolean,object

基本知識(shí)
let s = Symbol() // 注意不能使用new,因?yàn)樗皇菍?duì)象
typeof s // "symbol"


let s1 = Symbol("foo")
s1 // Symbol(foo)

// Symbol參數(shù)是一個(gè)對(duì)象,就會(huì)調(diào)用該對(duì)象的toString()方法,然后才生成一個(gè)Symbol值
const obj = {
    toString() {
        return "abc"
    }
}
const sym = Symbol(obj)
sym // Symbol(abc)

let s2 = Symbol("foo")
s1 === s2 // false

// Symbol值不可以運(yùn)算
console.log("your symbol " + s1) // TypeError

// Symbol可以顯式轉(zhuǎn)為字符串
String(s1) 
sym.toString() // "Symbol(foo)"

// Symbol可以轉(zhuǎn)為布爾值,但是不能轉(zhuǎn)為數(shù)值
Boolean(s) // true
!s // false
Number(s) // TypeError

可以防止某一個(gè)鍵被改寫或覆蓋

使用Symbol值定義屬性時(shí),Symbol值必須放在方括號(hào)之中。

let mySym = Symbol()
let a = {}
a[mySym] = "hello"

let a = {
    [mySym]: "hello"
}

// 注意點(diǎn)運(yùn)算符,此時(shí)mySym是字符串
a.mySym = "hello"
a[mySym] // undefined
a["mySym"] // "hello"

屬性名的遍歷
Symbol作為屬性名,不會(huì)出現(xiàn)在for...infor...of循環(huán)中,也不會(huì)被Object.keys()、Object.getOwnPropertyNames()、JSON.stringify()返回,有一個(gè)Object.getOwnPropertySymbols方法可以獲取Symbol屬性名

let obj = {}
let foo = Symbol("foo")
Object.defineProperty(obj, foo, {
    value: "foobar"
})

for (let i in obj) {
    console.log(i) // 無(wú)輸出
}

Object.getOwnPropertyNames(obj) // []

Object.getOwnPropertySymbols(obj) // [Symbol(foo)]

還有一個(gè)全新的APIReflect.ownKeys()可以返回所有類型的鍵名,包括常規(guī)鍵名和Symbol鍵名

let obj = {
    [Symbol("my_key")]: 1,
    enum: 2,
    nonEnum: 3
}

Reflect.ownKeys(obj) // ["enum","nonEnum",Symbol(my_key)]
let s1 = Symbol.for("foo") // 不會(huì)每次調(diào)用就返回一個(gè)新的Symbol類型的值
let s2 = Symbol.for("bar") // 調(diào)用30次,每次都返回同一個(gè)Symbol值,但是Symbol()會(huì)返回30個(gè)不同的Symbol值
s1 === s2 //true

// 返回一個(gè)已登記的Symbol類型值的key
let s1 = Symbol.for("foo")
Symbol.keyFor(s1) // "foo"

let s2 = Symbol("foo")
Symbol.keyFor(s2) // undefined

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84903.html

相關(guān)文章

  • ES6學(xué)習(xí)筆記之Symbol

    摘要:前端技術(shù)日新月異,不斷有新技術(shù)出現(xiàn),我們就需要不斷地學(xué)習(xí)新知識(shí),雖然已經(jīng)提出很久了,但是最近我才有時(shí)間靜下心來(lái)好好學(xué)習(xí)一下里面提出的新規(guī)則。 前端技術(shù)日新月異,不斷有新技術(shù)出現(xiàn),我們就需要不斷地學(xué)習(xí)新知識(shí),雖然ES6已經(jīng)提出很久了,但是最近我才有時(shí)間靜下心來(lái)好好學(xué)習(xí)一下里面提出的新規(guī)則。今天總結(jié)下ES6提出的這個(gè)新的原始數(shù)據(jù)類型--Symbol。 為啥需要Symbol 一個(gè)新規(guī)則的提出...

    leo108 評(píng)論0 收藏0
  • ES6學(xué)習(xí)總結(jié)(一)

    摘要:可以通過(guò)調(diào)用方法將創(chuàng)建一個(gè)新的類型的值,這個(gè)值獨(dú)一無(wú)二,不與任何值相等。還可以使可擴(kuò)展,在中,表達(dá)式被標(biāo)準(zhǔn)化為構(gòu)造函數(shù)的一個(gè)方法,這意味著它是可擴(kuò)展的。 前端發(fā)展的太快了,快到ES6,ES7出來(lái)之后,今年已經(jīng)是ES8了,但是縱然前端發(fā)展很快,我們除了馬不停蹄的學(xué)習(xí)新的技術(shù)之外,也要沉下心來(lái),好好的潛心磨礪自己,本文是整理了自己學(xué)習(xí)ES6之后相關(guān)的知識(shí)要點(diǎn),寄希望于書之于筆,一來(lái)自己可以...

    _ipo 評(píng)論0 收藏0
  • 重學(xué)前端學(xué)習(xí)筆記(六)--JavaScript類型有哪些你不知道細(xì)節(jié)?

    摘要:的碼點(diǎn)被稱為基本字符區(qū)域。關(guān)于的介紹,我準(zhǔn)備用文檔阮一峰來(lái)做一些介紹,具體的可以參考文檔引入的原因的對(duì)象屬性名都是字符串,這容易造成屬性名的沖突。其他的一些屬性可以去看文檔阮一峰注意函數(shù)前不能使用命令,否則會(huì)報(bào)錯(cuò)。 筆記說(shuō)明 重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時(shí)間開的一個(gè)專欄,每天10分鐘,重構(gòu)你的前端知識(shí)體系,筆者主要整理學(xué)習(xí)過(guò)程的一些要點(diǎn)筆記以及感悟,完...

    Lsnsh 評(píng)論0 收藏0
  • 重學(xué)前端學(xué)習(xí)筆記(六)--JavaScript類型有哪些你不知道細(xì)節(jié)?

    摘要:的碼點(diǎn)被稱為基本字符區(qū)域。關(guān)于的介紹,我準(zhǔn)備用文檔阮一峰來(lái)做一些介紹,具體的可以參考文檔引入的原因的對(duì)象屬性名都是字符串,這容易造成屬性名的沖突。其他的一些屬性可以去看文檔阮一峰注意函數(shù)前不能使用命令,否則會(huì)報(bào)錯(cuò)。 筆記說(shuō)明 重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時(shí)間開的一個(gè)專欄,每天10分鐘,重構(gòu)你的前端知識(shí)體系,筆者主要整理學(xué)習(xí)過(guò)程的一些要點(diǎn)筆記以及感悟,完...

    joyvw 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

SimpleTriangle

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<