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

資訊專欄INFORMATION COLUMN

ES6 symbol類型詳解

Yi_Zhi_Yu / 1160人閱讀

摘要:一定義類型是新的原始數(shù)據(jù)類型,表示獨(dú)一無二的值,其他的原始數(shù)據(jù)類型還有,屬于復(fù)雜數(shù)據(jù)類型。三值作為對(duì)象值作為屬性名時(shí)不能使用點(diǎn)運(yùn)算定義屬性時(shí),必須放在方括號(hào)內(nèi),與普通鍵值進(jìn)行區(qū)分。值可顯示地轉(zhuǎn)換成字符串??梢燥@示或隱式轉(zhuǎn)成,卻不能轉(zhuǎn)成數(shù)值。

一、定義
symbol類型是新的原始數(shù)據(jù)類型,表示獨(dú)一無二的值,其他的原始數(shù)據(jù)類型還有Number,String,Boolean,Null,Undefined;Object屬于復(fù)雜數(shù)據(jù)類型。

二、參數(shù)

1、Symbol函數(shù)接受字符串作為參數(shù),控制臺(tái)輸出時(shí),比較容易區(qū)分。

2、Symbol函數(shù)的參數(shù)僅表示Symbol值得描述,相同的參數(shù)返回值也不一樣

var a = Symbol("a"); 
var b = Symbol("a");
a === b   //false

3、Symbol.for()可以生成同一個(gè)Symbol值。

請(qǐng)輸入代碼
var a = Symbol.for("a"); 
var b = Symbol.for("a");
a === b   //true

Symbol.for()生成的名字是全局環(huán)境的,可以在不同的iframe中給取到值。

三、Symbol值作為對(duì)象
1、Symbol值作為屬性名時(shí)不能使用點(diǎn)運(yùn)算
2、定義屬性時(shí),必須放在方括號(hào)內(nèi),與普通鍵值進(jìn)行區(qū)分。

var a = Symbol("a");
var obj = {
   a: "normal key",
  [a]: "symbol key"    
}

3、Symbol值定義的屬性屬于公開屬性,普通方法無法遍歷。

//如上例
Obj.getOwnProperty()   //["a"]
Obj.getOwnPropertySymbols() //[Symbol("a")]

Refelect.ownKeys() // ["a", Symbol("a")]

4、利用Symbol的特性可定義內(nèi)部私有屬性或方法

function getObj (obj) {
   let privateKey = symbol("privateKey"),
       objCopy = ...obj || {};
   objCopy[privateKey] = function privateFunc () {
       console.log("privateFunc ")
   }
   return objCopy;
}

let newObj = getObj();
newObj[privateKey]  // 報(bào)錯(cuò),外部無法獲取到privateKey的值
newObj[symbol("privateKey")]  //undefined,此時(shí)的symbol已經(jīng)變成新的symbol值

三、注意點(diǎn)
1、Symbol值不能進(jìn)行隱式轉(zhuǎn)換,因此它與其他類型的值進(jìn)行運(yùn)算,會(huì)報(bào)錯(cuò)。

2、Symbol值可顯示地轉(zhuǎn)換成字符串。

var a = Symbol("a");
a.toString()   // "Symbol(a)"

3、可以顯示或隱式轉(zhuǎn)成Boolen,卻不能轉(zhuǎn)成數(shù)值。

var a = Symbol("a");
Boolean(a)  //true
if (a) { 
   console.log(a);
}   //Symbol("a") 打印出來地Symbol值會(huì)帶上參數(shù),便于區(qū)分

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

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

相關(guān)文章

  • ES6之Object.assign()詳解

    摘要:另外,本文版權(quán)歸原作者所有,翻譯僅用于學(xué)習(xí)。因?yàn)橹稻哂形ㄒ恍?,這就意味著作為對(duì)象的屬性名時(shí),可以保證不會(huì)出現(xiàn)同名的屬性。不過,這個(gè)提議在中被拒絕了,也許之后的版本會(huì)再考慮。事實(shí)上,與都有語(yǔ)法解決構(gòu)造器中屬性名重復(fù)的問題。 譯者按: 這篇博客將介紹ES6新增的Object.assign()方法。 原文: ECMAScript 6: merging objects via Object...

    niceforbear 評(píng)論0 收藏0
  • ES6的Iterator對(duì)象詳解

    摘要:實(shí)現(xiàn)原理創(chuàng)建一個(gè)指針對(duì)象,指向當(dāng)前數(shù)據(jù)結(jié)構(gòu)的起始位置。也就是說,遍歷器對(duì)象本質(zhì)上,就是一個(gè)指針對(duì)象。具體來說,就是返回一個(gè)包含和兩個(gè)屬性的對(duì)象。接口部署在對(duì)象的屬性上可以調(diào)用這個(gè)屬性,就得到遍歷器對(duì)象。 Iterator實(shí)現(xiàn)原理 創(chuàng)建一個(gè)指針對(duì)象,指向當(dāng)前數(shù)據(jù)結(jié)構(gòu)的起始位置。也就是說,遍歷器對(duì)象本質(zhì)上,就是一個(gè)指針對(duì)象。 第一次調(diào)用指針對(duì)象的next方法,可以將指針指向數(shù)據(jù)結(jié)構(gòu)的第一...

    KoreyLee 評(píng)論0 收藏0
  • JavaScript 運(yùn)算符規(guī)則與隱式類型轉(zhuǎn)換詳解

    摘要:我們?cè)賮砘仡櫹挛氖滋岢龅倪@個(gè)比較運(yùn)算,首先為對(duì)象,則調(diào)用函數(shù)將其轉(zhuǎn)化為字符串對(duì)于右側(cè)的,首先會(huì)進(jìn)行顯式類型轉(zhuǎn)換,將其轉(zhuǎn)化為。 JavaScript 運(yùn)算符規(guī)則與隱式類型轉(zhuǎn)換詳解 從屬于筆者的現(xiàn)代 JavaScript 開發(fā):語(yǔ)法基礎(chǔ)與工程實(shí)踐系列文章,主要探討 JavaScript 中令人迷惑的加減乘除與比較等常見運(yùn)算中的規(guī)則與隱式類型轉(zhuǎn)換;本文中涉及的參考資料全部聲明在了JavaSc...

    snifes 評(píng)論0 收藏0
  • JavaScript 運(yùn)算符規(guī)則與隱式類型轉(zhuǎn)換詳解

    摘要:我們?cè)賮砘仡櫹挛氖滋岢龅倪@個(gè)比較運(yùn)算,首先為對(duì)象,則調(diào)用函數(shù)將其轉(zhuǎn)化為字符串對(duì)于右側(cè)的,首先會(huì)進(jìn)行顯式類型轉(zhuǎn)換,將其轉(zhuǎn)化為。 JavaScript 運(yùn)算符規(guī)則與隱式類型轉(zhuǎn)換詳解 從屬于筆者的現(xiàn)代 JavaScript 開發(fā):語(yǔ)法基礎(chǔ)與工程實(shí)踐系列文章,主要探討 JavaScript 中令人迷惑的加減乘除與比較等常見運(yùn)算中的規(guī)則與隱式類型轉(zhuǎn)換;本文中涉及的參考資料全部聲明在了JavaSc...

    Kyxy 評(píng)論0 收藏0
  • ES6 變量聲明與賦值:值傳遞、淺拷貝與深拷貝詳解

    摘要:變量聲明與賦值值傳遞淺拷貝與深拷貝詳解歸納于筆者的現(xiàn)代開發(fā)語(yǔ)法基礎(chǔ)與實(shí)踐技巧系列文章。變量聲明在中,基本的變量聲明可以用方式允許省略,直接對(duì)未聲明的變量賦值。按值傳遞中函數(shù)的形參是被調(diào)用時(shí)所傳實(shí)參的副本。 ES6 變量聲明與賦值:值傳遞、淺拷貝與深拷貝詳解歸納于筆者的現(xiàn)代 JavaScript 開發(fā):語(yǔ)法基礎(chǔ)與實(shí)踐技巧系列文章。本文首先介紹 ES6 中常用的三種變量聲明方式,然后討論了...

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

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

0條評(píng)論

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