最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
家居| 镇安县| 永靖县| 翼城县| 马公市| 新巴尔虎右旗| 阳高县| 梅河口市| 航空| 天柱县| 水富县| 米泉市| 都昌县| 汉源县| 凤冈县| 华宁县| 缙云县| 盖州市| 东安县| 龙口市| 肇州县| 农安县| 苏尼特左旗| 共和县| 泽库县| 黔西县| 濉溪县| 东方市| 铜山县| 泽州县| 南投市| 梧州市| 昂仁县| 衢州市| 乳山市| 阿勒泰市| 平顶山市| 竹溪县| 腾冲县| 武清区| 泽州县|