首頁 > web前端 > js教程 > 主體

JS 中的符號與物件♥

Linda Hamilton
發布: 2024-10-11 18:38:02
原創
731 人瀏覽過

Symbols and Objects in JS♥

符號資料類型

Symbol 是 JS 中的一種資料型態。它通常用於在 Javascript 中建立唯一鍵和隱藏物件鍵。

有兩種類型的符號

  1. 本地符號 - 它們未在全域符號註冊表中註冊,即使具有相同的描述符,值也是唯一的。
  2. 全域符號 - 它們在全域符號註冊表中註冊,且值不唯一

全域符號登錄:全域符號登錄是儲存使用Symbol.for建立的符號的空間。

文法
在下面的範例中,「john」是描述符,key_one 和 key_two 是符號。

const key_one = Symbol("john"); //local symbol
const key_two = Symbol.for("john"); //global symbol
console.log(typeof key_one) // symbol
console.log(typeof key_two); //symbol
登入後複製

主要區別

相同值的描述子在局部符號中不相同

正如我之前所說,即使本地符號中的描述符相同,每個符號都是唯一的。讓我們驗證一下。

應用程式

const key_one = Symbol("john");
const key_two = Symbol("john");
key_one == key_two // false
key_one === key_two //false
登入後複製

相同值的描述符在全域符號中是相同的

const key_one = Symbol.for("foo");
const key_two = Symbol.for("foo");
console.log(key_one === key_two); //true
登入後複製

關於物體和符號的一些事實

  1. 符號不會轉換為字串。
  2. 您無法使用 for...in 迴圈存取這兩個符號
  3. 即使使用 Object.keys() 屬性也無法存取這兩個符號
  4. 物件中的每個鍵都會轉換為字串偶數。
  5. 您可以使用Object.getOwnPropertySymbols()函數查看物件的所有符號

應用程式

const zero = Symbol("0");
const temp = {
 0:"zero",
 1:"one",
 [zero]:"zero",
 1.1:"one one",
}
const keys = Object.keys(temp); //["0","1","1.1"]
console.log(temp[1.1]) // one one
console.log(Object.getOwnPropertySymbols(temp)) // [Symbol(0)]
登入後複製

如何在Symbol.for()中取得描述符

使用Symbol.keyFor(symbol)可以獲得全域符號的描述符

const key_one = Symbol.for("john")
Symbol.keyFor(key_one) // "john"
typeof Symbol.keyFor(key_one) //string
登入後複製

請在 dev.to 和 linkedin 上支持我? 。 TY?

以上是JS 中的符號與物件♥的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板