五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

JavaScript中的符號(hào)(Symbols)

2023-08-25 08:45 作者:曉楓Motivation  | 我要投稿

符號(hào)是在ES6中引入的一種原始類(lèi)型,用作非字符串屬性名。要理解符號(hào),重要的是要知道在JavaScript中,基本類(lèi)型Object是一個(gè)無(wú)序的屬性集合,每個(gè)屬性都有一個(gè)名稱和一個(gè)值。屬性名稱通常(直到ES6之前)是字符串。然而,在ES6和之后的版本中,符號(hào)也可以用作屬性名:

符號(hào)沒(méi)有字面量語(yǔ)法。要獲取符號(hào)值,您需要調(diào)用Symbol()函數(shù)。該函數(shù)永遠(yuǎn)不會(huì)返回相同的值,即使每次都提供相同的參數(shù)。這意味著您可以安全地使用調(diào)用Symbol()的結(jié)果將新屬性添加到對(duì)象中,而不必?fù)?dān)心覆蓋具有相同名稱的現(xiàn)有屬性。類(lèi)似地,如果定義了一個(gè)符號(hào)屬性并且不共享相應(yīng)的符號(hào),您可以確信代碼的其他部分不會(huì)意外覆蓋該屬性。

(程序員的軟技能:ke.qq.com/course/6034346)

在實(shí)踐中,符號(hào)通常用作語(yǔ)言擴(kuò)展的機(jī)制。ES6引入了for/of循環(huán)和可迭代對(duì)象的概念,這需要為類(lèi)定義一種標(biāo)準(zhǔn)化的方式,使它們能夠自身成為可迭代的。然而,將任何特定的字符串用作此迭代器方法的名稱可能會(huì)與現(xiàn)有代碼沖突。這就是符號(hào)的作用。Symbol.iterator是一個(gè)符號(hào)值,可以用作方法名以使對(duì)象成為可迭代的。

Symbol()函數(shù)可以選擇接受一個(gè)字符串參數(shù),并返回一個(gè)唯一的符號(hào)值。如果提供了字符串參數(shù),調(diào)用返回的符號(hào)值上的toString()方法的結(jié)果將包含該字符串。然而,重要的是要注意,使用相同的字符串調(diào)用Symbol()兩次會(huì)導(dǎo)致兩個(gè)完全不同的符號(hào)值。

符號(hào)值的唯一有趣方法是toString()。然而,還有兩個(gè)與符號(hào)相關(guān)的函數(shù)值得了解。有時(shí)在使用符號(hào)時(shí),您希望它們對(duì)您的代碼保持私有,以確保您的屬性不會(huì)與其他代碼的屬性沖突。但是在其他時(shí)候,您可能希望定義可以與其他代碼共享的符號(hào)。例如,如果您定義了一個(gè)擴(kuò)展并希望其他代碼使用它,類(lèi)似于前面提到的Symbol.iterator機(jī)制。

為了定義可以與其他代碼共享的符號(hào),JavaScript具有全局符號(hào)注冊(cè)表。Symbol.for()函數(shù)接受一個(gè)字符串參數(shù),并返回與該字符串關(guān)聯(lián)的符號(hào)值。如果沒(méi)有與字符串關(guān)聯(lián)的符號(hào),它將創(chuàng)建并返回一個(gè)新的符號(hào);否則,它將返回現(xiàn)有的符號(hào)。換句話說(shuō),Symbol.for()Symbol()是完全不同的:Symbol()永遠(yuǎn)不會(huì)返回相同的值,而Symbol.for()在使用相同的字符串調(diào)用時(shí)總是返回相同的值。提供給Symbol.for()的字符串將出現(xiàn)在toString()的輸出中(當(dāng)返回符號(hào)值時(shí))。此外,通過(guò)使用Symbol.keyFor()傳遞返回的符號(hào),可以檢索此字符串:

(程序員的軟技能:ke.qq.com/course/6034346)


JavaScript中的符號(hào)(Symbols)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
疏附县| 涟源市| 克山县| 东辽县| 双鸭山市| 芒康县| 岚皋县| 麻城市| 高唐县| 汪清县| 海门市| 武清区| 门源| 鄯善县| 睢宁县| 兴义市| 沙田区| 西平县| 贺兰县| 鸡东县| 监利县| 辰溪县| 盐源县| 南投市| 渭南市| 同仁县| 尉犁县| 阳谷县| 汽车| 定襄县| 曲周县| 都匀市| 华容县| 韶关市| 松江区| 凤冈县| 沂南县| 建湖县| 喜德县| 庆阳市| 中牟县|