在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 網(wǎng)頁設(shè)計教程 > 詳細(xì)頁面

ES6中Symbol相關(guān)知識的介紹(代碼示例)

ES6中Symbol相關(guān)知識的介紹(代碼示例)

更新時間:2025-12-07 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

導(dǎo)網(wǎng)頁的本質(zhì)就是超級文本標(biāo)記語言,通過結(jié)合使用其他的Web技術(shù)(如:腳本語言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁。因而,超級文本標(biāo)記語言是萬維網(wǎng)(Web)編程的基礎(chǔ),也就是說萬維網(wǎng)是建立...
網(wǎng)頁的本質(zhì)就是超級文本標(biāo)記語言,通過結(jié)合使用其他的Web技術(shù)(如:腳本語言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁。因而,超級文本標(biāo)記語言是萬維網(wǎng)(Web)編程的基礎(chǔ),也就是說萬維網(wǎng)是建立在超文本基礎(chǔ)之上的。超級文本標(biāo)記語言之所以稱為超文本標(biāo)記語言,是因?yàn)槲谋局邪怂^“超級鏈接”點(diǎn)。
本篇文章給大家?guī)淼膬?nèi)容是關(guān)于ES6中Symbol相關(guān)知識的介紹(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

symbol是es6出的一種類型,他也是屬于原始類型的范疇(string, number, boolean, null, undefined, symbol)

basic

let name = Symbol('xiaohesong')
typeof name // 'symbol'
let obj = {}
obj[name] = 'xhs'
console.log(obj[name]) //xhs

symbol for

這個東西是可共享,在創(chuàng)建的時候會檢查全局是否尋在這個key的symbol.如果存在就直接返回這個symbol,如果不存在就會創(chuàng)建,并且在全局注冊。

let uid = Symbol.for("uid");
let object = {
    [uid]: "12345"
};

console.log(object[uid]);       // "12345"
console.log(uid);               // "Symbol(uid)"

let uid2 = Symbol.for("uid");

console.log(uid === uid2);      // true
console.log(object[uid2]);      // "12345"
console.log(uid2);              // "Symbol(uid)"
此處所說的共享是全局性的共享,類似于global scope,是整個大環(huán)境下的共享.

symbol keyfor

let uid = Symbol.for("uid");
console.log(Symbol.keyFor(uid));    // "uid"

let uid2 = Symbol.for("uid");
console.log(Symbol.keyFor(uid2));   // "uid"

let uid3 = Symbol("uid");
console.log(Symbol.keyFor(uid3));   // undefined

全局注冊表不存在uid3這個共享的symbol.所以取不出對應(yīng)的key.由此可見,這個是獲取對應(yīng)的key.

symbol 不可強(qiáng)制轉(zhuǎn)換

let uid = Symbol('uid')
uid + ''

這里會報錯,根據(jù)規(guī)范,他會把uid轉(zhuǎn)換成字符串進(jìn)行相加。如果真的相加,可以先String(uid)之后再相加,不過目前看來,似乎沒什么意義。

obj中symbol key的獲取

let uid = Symbol('uid')
let obj = {
    [uid]: 'uid'
}

console.log(Object.keys(obj)) // []
console.log(Object.getOwnPropertyNames(obj)) // []
console.log(Object.getOwnPropertySymbols(obj)) // [Symbol(uid)]

es6針對這個,添加了Object.getOwnPropertySymbols方法。

是不是感覺很少用到Symbols.其實(shí)es6內(nèi)部用的還是不少的。

Symbol.hasInstance

每個函數(shù)都有這個方法;蛟S你對這個方法不是很熟,他其實(shí)就是instanceof所做的事情。 沒錯,es6給你重寫了這個方法。

function Xiao(){}
const xiao = new Xiao
xiao instanceof Xiao // true

實(shí)際上es6幫你那么干了

Xiao[Symbol.hasInstance](xiao)

這個是內(nèi)部的方法,不支持重寫,當(dāng)然,我們可以在原型上改寫。

Object.definePrototype(Xiao, Symbol.hasInstance, {
   value: (v) : Boolean(v)
})
const x = new Xiao
x instanceof Xiao //true
0 instanceof Xiao //false
1 instanceof Xiao //true

可以發(fā)現(xiàn),我們改寫他返回對應(yīng)的是否為boolean類型。

Symbol.isConcatSpreadable

這個和其他的一些屬性不同,他是默認(rèn)不存在一些標(biāo)準(zhǔn)對象上。簡單的使用

let objs = {0: 'first', 1: 'second', length: 2, [Symbol.isConcatSpreadable]: true}
['arrs'].concat(objs) //["arrs", "first", "second"]

Symbol.toPrimitive

這個用的就多了,進(jìn)行類型轉(zhuǎn)換的時候,對象會進(jìn)行嘗試轉(zhuǎn)換成原始類型,就是通過toPrimitive.這個方法,標(biāo)準(zhǔn)類型的原型上都存在。
進(jìn)行類型轉(zhuǎn)換的時候,toPrimitive會被強(qiáng)制的調(diào)用一個參數(shù),在規(guī)范中這個參數(shù)被稱之為hint. 這個參數(shù)是三個值('number', 'string', 'default')其中的一個。
顧名思義,string返回的是string, number返回的是number,default是沒有特別指定,默認(rèn)。
那么什么是默認(rèn)的情況呢? 大多數(shù)的情況下,默認(rèn)情況就是數(shù)字模式。(日期除外,他的默認(rèn)情況視為字符串模式)
其實(shí)在類型轉(zhuǎn)換時調(diào)用默認(rèn)情況的也不是很多。如(==, +)或者將參數(shù)傳遞給Date的構(gòu)造參數(shù)的時候。

  • number mode 在數(shù)字情況下的行為(優(yōu)先級從高到低)

  • 首先調(diào)用valueOf,如果是一個原始類型,那就返回。

  • 如果前面不是原始值,那么就嘗試調(diào)用toString,如果是原始值,那么就返回

  • 如果都不存在,那么就報錯

  • string mode 在字符串的情況下,行為略有不同(優(yōu)先級從高到低)

  • 首先調(diào)用toString,如果是原始值,那么就返回

  • 如果前面不是原始值,那么就嘗試調(diào)用valueOf,如果是原始值,那么就返回

  • 拋出錯誤

嗯,是不是感覺挺繞的,是啊,代碼闡述下嘛。

let obj = {
    valueOf: function(){console.log('valueOf')},
    toString: function(){console.log('toString')}
}
// console.log value is
obj + 2 //valueOf
obj == 2 // valueOf
Number(obj) // valueOf
String(obj) // toString

通過上面的輸出,可以發(fā)現(xiàn)大多數(shù)的情況都是首先調(diào)用valueOf.
包括默認(rèn)的情況,他的默認(rèn)是調(diào)用的數(shù)字模式,而且絕大數(shù)都是調(diào)用的數(shù)字模式,可以發(fā)現(xiàn)toString是調(diào)用了string的模式。所以你可以認(rèn)為,基本就是數(shù)字模式,除非很顯示的是字符串模式。
對于這個調(diào)用的模式還不是很清楚?沒事,es6把這個內(nèi)部的方法對外暴露出來了,我們可以改寫他,輸出這個hint的類型。 來

function Temperature(degrees) {
    this.degrees = degrees;
}

Temperature.prototype[Symbol.toPrimitive] = function(hint) {
    console.log('hint is', hint)
};

let freezing = new Temperature(32);

freezing + 2 // ..
freezing / 2 // ..
...

上面的類型,你可以試試。

以上就是ES6中Symbol相關(guān)知識的介紹(代碼示例)的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


網(wǎng)站建設(shè)是一個廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 亚欧精品在线视频| 在线观看日本一区二区| 国产资源第一页| 日本黄网站免费| 波多野结衣激情| 欧美国产激情视频| 久久这里只有精品23| 美女网站视频黄色| 欧美成人免费高清视频| 国产免费视频传媒| 涩多多在线观看| av电影一区二区三区| 日本a视频在线观看| 亚洲欧美一二三| 爱豆国产剧免费观看大全剧苏畅| 大j8黑人w巨大888a片| 成年人免费观看的视频| 亚洲精品国产一区二区三区| 日本熟妇人妻中出| 国产日产欧美视频| chinese少妇国语对白| 国产午夜大地久久| 国产 日韩 欧美在线| 动漫av网站免费观看| 91猫先生在线| 国产91xxx| 黄色av免费在线播放| 男人操女人逼免费视频| 中文字幕无码精品亚洲资源网久久| 国产又粗又猛大又黄又爽| а 天堂 在线| 日本一本中文字幕| 日本韩国欧美在线观看| 青青视频在线播放| 国产三级三级看三级| 999精彩视频| gai在线观看免费高清| 中文字幕超清在线免费观看| 喜爱夜蒲2在线| 久久久精品视频国产| 婷婷无套内射影院| 国产裸体免费无遮挡| 久久免费视频2| 成年网站在线免费观看| 一区二区三区入口| 日韩欧美黄色大片| 大地资源网在线观看免费官网| 黑人糟蹋人妻hd中文字幕| 欧美激情精品久久久久久小说| 国产三级三级三级看三级| 天天综合成人网| 北条麻妃视频在线| 91精品999| 天堂…中文在线最新版在线| 色综合色综合色综合色综合| 男女激烈动态图| 成人性生活视频免费看| caoporm在线视频| 97超碰在线人人| 在线视频一二区| 91香蕉视频导航| 一区二区传媒有限公司| 亚洲一二区在线观看| 麻豆三级在线观看| 每日在线观看av| 性做爰过程免费播放| 日韩视频在线免费播放| 99色这里只有精品| 国产成人无码a区在线观看视频| 国产一二三区av| 国产情侣av自拍| 污污的网站18| 日本精品一区在线观看| 97干在线视频| www.黄色网址.com| 中文字幕国产高清| 国产福利在线免费| www.com黄色片| 深夜做爰性大片蜜桃| 三级黄色片播放| a级免费在线观看| 亚洲国产精品无码观看久久| 国产精品入口免费软件| 国产91色在线观看| 青青艹视频在线| 黄色一级在线视频| 日韩国产欧美亚洲| 久久国产成人精品国产成人亚洲| 玖玖精品在线视频| 亚洲精品在线视频播放| 国产成人av影视| 欧美视频第三页| 老司机午夜av| 日韩av在线综合| 特级黄色片视频| 91免费视频污| 超级碰在线观看| 男女日批视频在线观看| 3d动漫一区二区三区| 秋霞无码一区二区| 色戒在线免费观看| 亚洲av首页在线| 国产成人综合一区| 在线观看日本www| 国产性生活免费视频| 九一免费在线观看| 看欧美ab黄色大片视频免费| 黄色片在线免费| 久热精品在线观看视频| 久久精品国产精品亚洲精品色| 男人添女人下部视频免费| www.av毛片| 中文字幕免费高| 欧美牲交a欧美牲交aⅴ免费真 | av之家在线观看| 91av俱乐部| 亚洲 欧美 综合 另类 中字| 成年人午夜免费视频| 欧美深夜福利视频| 亚洲精品视频三区| 青青草精品视频在线| 亚洲精品www.| 国产午夜福利视频在线观看| 一女二男3p波多野结衣| 成人在线免费高清视频| 50路60路老熟妇啪啪| 欧美精品一区二区性色a+v| 最近免费观看高清韩国日本大全| 91插插插插插插插插| 少妇一晚三次一区二区三区| 很污的网站在线观看| 男人女人黄一级| 欧美视频免费看欧美视频| 国产高清av片| 国产aⅴ爽av久久久久| 六月丁香婷婷在线| www.-级毛片线天内射视视| 午夜dv内射一区二区| 黄网站欧美内射| 91嫩草国产丨精品入口麻豆 | 色诱视频在线观看| 亚洲中文字幕无码专区| 五月天激情图片| 国产资源中文字幕| 国产中文字幕二区| 国模吧无码一区二区三区| 五月六月丁香婷婷| 成人日韩在线视频| 久久久精品麻豆| www.99av.com| 激情视频免费网站| 日本久久久久久久久久久久| 8x8x最新地址| 99久久久无码国产精品性色戒| 亚洲综合色在线观看| 浓精h攵女乱爱av| 国产a级片免费看| 久热精品在线播放| 妞干网在线视频观看| 国产免费人做人爱午夜视频| 午夜肉伦伦影院| 99中文字幕在线观看| 青青在线视频免费观看| 欧美久久久久久久久久久久久久| 奇米777四色影视在线看| 草草草视频在线观看| 欧美性猛交xxx乱久交| 91香蕉视频免费看| 奇米影视亚洲色图| www.欧美激情.com| 亚洲激情免费视频| 亚洲美免无码中文字幕在线| 久久综合亚洲精品| 欧美色图色综合| 日本激情视频在线| 精品无码av无码免费专区| 少妇无码av无码专区在线观看| 女性隐私黄www网站视频| 日本aa在线观看| 亚洲一区在线不卡| 熟妇熟女乱妇乱女网站| 日本福利视频在线| 九九九九九九九九| 亚洲自拍偷拍一区二区三区| 无码中文字幕色专区| 日本精品一区在线| 亚洲不卡视频在线| 成年人三级视频| 搡女人真爽免费午夜网站| 黄色网页免费在线观看| 中文字幕亚洲乱码| 国产一线二线三线女| 无需播放器的av| 国产精品无码av无码| 久久久无码中文字幕久...| 久久精品国产99久久99久久久| 日韩网站在线免费观看| 亚洲AV无码成人精品一区| 久久精品视频在线观看免费| 日本成人在线免费视频|