国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【前端知識】JavaScript——Symbol類型

這篇具有很好參考價值的文章主要介紹了【前端知識】JavaScript——Symbol類型。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【前端知識】JavaScript——Symbol類型

  1. 什么是Symbol(符號)類型?

? Symbol是原始值,且Symbol實例是唯一、不可變的。Symbol的用途是確保對象屬性使用唯一標識符,不會發(fā)生屬性沖突的危險。Symbol創(chuàng)建唯一記號,進而用作非字符串形式的對象屬性。

  1. 如何使用Symbol?
function foo() {
    let sym = Symbol();
    console.log(typeof sym);
}
foo(); // symbol
  1. 全局符號注冊表
// 創(chuàng)建新符號
let newSymbol = Symbol.for('foo'); 
console.log(typeof newSymbol); // symbol
// 重用已有符號
let copySymbol = Symbol.for('foo'); 
console.log(newSymbol === copySymbol); // true

// 即使采用相同的符號描述,在全局注冊表中定義的符號跟使用 Symbol()定義的符號也并不等同
let localSymbol = Symbol('foo'); 
let globalSymbol = Symbol.for('foo'); 
console.log(localSymbol === globalSymbol); // false

// 查詢已注冊的符號
let s = Symbol.for('foo'); 
console.log(Symbol.keyFor(s)); // foo

  1. 使用符號作為屬性
let s1 = Symbol('foo'), 
    s2 = Symbol('bar'), 
    s3 = Symbol('baz'), 
    s4 = Symbol('qux'); 

// 方式一:
let o = { 
    [s1]: 'foo val' 
}; 
// 這樣也可以:o[s1] = 'foo val'; 
console.log(o); // {Symbol(foo): foo val} 

// 方式二:
Object.defineProperty(o, s2, {value: 'bar val'}); 
console.log(o); // {Symbol(foo): foo val, Symbol(bar): bar val} 

// 方式三:
Object.defineProperties(o, { 
    [s3]: {value: 'baz val'}, 
    [s4]: {value: 'qux val'} 
}); 
console.log(o); 
// {Symbol(foo): foo val, Symbol(bar): bar val, 
// Symbol(baz): baz val, Symbol(qux): qux val}
  1. 常用內(nèi)置符號

? 內(nèi)置符號是全局函數(shù) Symbol 的普通字符串屬性,指向一個符號的實例。所有內(nèi)置符號屬性都是不可寫、不可枚舉、不可配置的

  1. Symbol.asyncIterator

? Symbol.asyncIterator 作為一個屬性表示“一個方法,該方法返回對象默認的 AsyncIterator。由 for-await-of 語句使用”。for-await-of 循環(huán)會利用這個函數(shù)執(zhí)行異步迭代操作。循環(huán)時,它們會調(diào)用以Symbol.asyncIterator為鍵的函數(shù),并期望這個函數(shù)會返回一個實現(xiàn)迭代器 API 的對象。

  1. Symbol.hasInstance

? Symbol.hasInstance 作為一個屬性表示“一個方法,該方法決定一個構造器對象是否認可一個對象是它的實例。由 instanceof 操作符使用”。instanceof 操作符可以用來確定一個對象實例的原型鏈上是否有原型。

  1. Symbol.isConcatSpreadable

? Symbol.isConcatSpreadable 作為一個屬性表示“一個布爾值,如果是 true,則意味著對象應該用 Array.prototype.concat()打平其數(shù)組元素”

  1. Symbol.iterator

? Symbol.iterator 作為一個屬性表示“一個方法,該方法返回對象默認的迭代器。由 for-of 語句使用”。換句話說,這個符號表示實現(xiàn)迭代器 API 的函數(shù)。

  1. Symbol.match

? Symbol.match 作為一個屬性表示“一個正則表達式方法,該方法用正則表達式去匹配字符串。由 String.prototype.match()方法使用”

  1. Symbol.replace

? Symbol.replace 作為一個屬性表示“一個正則表達式方法,該方法替換一個字符串中匹配的子串。由 String.prototype.replace()方法使用”。

  1. Symbol.search

? Symbol.search 作為一個屬性表示“一個正則表達式方法,該方法返回字符串中匹配正則表達式的索引。由 String.prototype.search()方法使用”

  1. Symbol.species

? Symbol.species 作為一個屬性表示“一個函數(shù)值,該函數(shù)作為創(chuàng)建派生對象的構造函數(shù)”。這個屬性在內(nèi)置類型中最常用,用于對內(nèi)置類型實例方法的返回值暴露實例化派生對象的方法。

  1. Symbol.split

? Symbol.split 作為一個屬性表示“一個正則表達式方法,該方法在匹配正則表達式的索引位置拆分字符串。由 String.prototype.split()方法使用”。

  1. Symbol.toPrimitive

? Symbol.toPrimitive 作為一個屬性表示“一個方法,該方法將對象轉換為相應的原始值。由 ToPrimitive 抽象操作使用”。

  1. Symbol.toStringTag

? Symbol.toStringTag 作為一個屬性表示“一個字符串,該字符串用于創(chuàng)建對象的默認字符串描述。由內(nèi)置方法 Object.prototype.toString()使用”。

  1. Symbol.unscopables

? Symbol.unscopables 作為一個屬性表示“一個對象,該對象所有的以及繼承的屬性,都會從關聯(lián)對象的 with 環(huán)境綁定中排除”。文章來源地址http://www.zghlxwxcb.cn/news/detail-598912.html

到了這里,關于【前端知識】JavaScript——Symbol類型的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【JavaScript_1】入門知識、數(shù)據(jù)類型、運算符

    1、var變量賦值不需要強制轉換,可以直接進行賦值。 var a=1; a=“hello”; 2、JavaScript的工作方式:先解析代碼,獲取所有被聲明的變量,然后再一行一行地運行。 因此導致所有的變量聲明語句都會被提升到代碼的頭部,這就叫做變量提升。 eg: console.log(a); var a=1;-----------var a;

    2024年02月12日
    瀏覽(26)
  • web前端框架JS學習之JavaScript類型轉換

    web前端框架JS學習之JavaScript類型轉換

    vascript有多種數(shù)據(jù)類型,如字符串、數(shù)字、布爾等,可以通過typeof語句來查看變量的數(shù)據(jù)類型。數(shù)據(jù)類型轉換就是數(shù)據(jù)類型之間相互轉換,比如把數(shù)字轉成字符串、把布爾值轉成字符串、把字符串轉成數(shù)字等,這在工作也是經(jīng)常碰到的。 本期我們就給大家說說web前端框架JS學

    2024年02月10日
    瀏覽(90)
  • 學習javascript,前端知識精講,助力你輕松掌握

    學習javascript,前端知識精講,助力你輕松掌握

    ?? 歡迎大家來到景天科技苑?? ???? 養(yǎng)成好習慣,先贊后看哦~???? 所屬專欄: 前端泛海 景天的主頁: 景天科技苑 JavaScript在1995年誕生了; 由Netscape公司,布蘭登·艾奇(Brendan Eich)發(fā)明的ECMAScript客戶端腳本語言; 主要應用在瀏覽器,在當時卻不溫不火. 直到后來Netscape與S

    2024年03月15日
    瀏覽(29)
  • 【ES6】JavaScript中的Symbol

    【ES6】JavaScript中的Symbol

    Symbol是JavaScript中的一種特殊的、不可變的、不可枚舉的數(shù)據(jù)類型。它通常用于表示一個唯一的標識符,可以作為對象的屬性鍵,確保對象的屬性鍵的唯一性和不可變性。 Symbol.for()是Symbol的一個方法,它用于創(chuàng)建一個已經(jīng)注冊的Symbol對象。當使用Symbol.for()創(chuàng)建Symbol對象時,會

    2024年02月10日
    瀏覽(28)
  • 【前端知識】JavaScript——var 與 let 的區(qū)別

    【前端知識】JavaScript——var 與 let 的區(qū)別

    var聲明的變量會自動提升到函數(shù)作用域頂部,而let不會。 在解析代碼時,JavaScript 引擎會注意出現(xiàn)在塊后面的 let 聲明,只不過在此之前不能以任何方式來引用未聲明的變量。在 let 聲明之前的執(zhí)行瞬間被稱為 暫時性死區(qū)(temporal dead zone) ,在此階段引用任何后面才聲明的變

    2024年02月16日
    瀏覽(23)
  • 【前端知識】JavaScript——設計模式(工廠模式、構造函數(shù)模式、原型模式)

    工廠模式是一種眾所周知的設計模式,廣泛應用于軟件工程領域,用于抽象創(chuàng)建特定對象的過程。 優(yōu)點:可以解決創(chuàng)建多個類似對象的問題 缺點:沒有解決對象標識問題(即新創(chuàng)建的對象是什么類型) 示例: 構造函數(shù)模式與工廠模式相比,沒有顯式地創(chuàng)建對象,其屬性和方

    2024年02月15日
    瀏覽(54)
  • 【JavaScript】3.4 JavaScript在現(xiàn)代前端開發(fā)中的應用

    【JavaScript】3.4 JavaScript在現(xiàn)代前端開發(fā)中的應用

    JavaScript 是現(xiàn)代前端開發(fā)的核心。無論是交互效果,還是復雜的前端應用,JavaScript 都發(fā)揮著關鍵作用。在本章節(jié)中,我們將探討 JavaScript 在現(xiàn)代前端開發(fā)中的應用,包括如何使用 JavaScript 來處理用戶交互、動態(tài)內(nèi)容、前端路由、API 請求等。 JavaScript 是處理用戶交互的主要工

    2024年02月04日
    瀏覽(26)
  • 前端開發(fā)——JavaScript的條件語句

    ? 世界不僅有黑,又或者白 世界而是一道精致的灰 ?——Lungcen ? ? 目錄 條件判斷語句 if 語句 if else 語句 if else if else 語句 ?switch語句 break case 子句 default語句 while循環(huán)語句 do while循環(huán)語句 for循環(huán)語句 for 循環(huán)中的三個表達式 for 循環(huán)嵌套 for 循環(huán)變體——for in for 循環(huán)

    2023年04月21日
    瀏覽(24)
  • 快速認識,前端必學編程語言:JavaScript

    快速認識,前端必學編程語言:JavaScript

    JavaScript是構建Web應用必學的一門編程語言,也是最受開發(fā)者歡迎的熱門語言之一。所以,如果您還不知道JavaScript的用處、特點的話,趕緊補充一下這塊基礎知識。 JavaScript 是一種高級、單線程、垃圾收集、解釋或即時編譯、基于原型、多范式、動態(tài)語言,具有非阻塞事件循

    2024年02月05日
    瀏覽(26)
  • 【前端靈魂腳本語言JavaScript⑤】——JS中數(shù)組的使用

    【前端靈魂腳本語言JavaScript⑤】——JS中數(shù)組的使用

    ?? 作者: 阿偉 ?? 個人主頁: Flyme awei ?? 希望大家多多支持??一起進步呀! ?? 文章對你有幫助??關注?點贊??收藏?? 第一種: var 數(shù)組名 = new Array(); 創(chuàng)建一個空數(shù)組 第二種: var arr2 = new Array(10); 創(chuàng)建一個定長為10的數(shù)組 第三種 var arr3 = new Array(a,b,c); 創(chuàng)建時直接指定元素值

    2023年04月08日
    瀏覽(111)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包