摘要:是包含兩個(gè)參數(shù)的抽象的操作,一個(gè)是參數(shù),一個(gè)是可選參數(shù),該操作就是將轉(zhuǎn)換為非類型的值,即數(shù)據(jù)類型的種普通類型。在第一個(gè)參數(shù)為時(shí),有可能將該轉(zhuǎn)換不止一種基本類型的值。
ToPrimitive 是包含兩個(gè)參數(shù)的抽象的操作,一個(gè)是 input argument 參數(shù),一個(gè)是可選參數(shù) PreferredType,該操作就是將 input argument 轉(zhuǎn)換為 no-Object type (非 object 類型的值,即js數(shù)據(jù)類型的5種普通類型)。
為什么第二個(gè)參數(shù)是可選參數(shù),因?yàn)樵谝恍┍匾那闆r下需要傳入該參數(shù)。
在第一個(gè)參數(shù)為 object 時(shí),ToPrimitive 有可能將該 object 轉(zhuǎn)換不止一種基本類型的值。
可選參數(shù) hint PreferredType 確定地將其轉(zhuǎn)換為一種類型
input argument 轉(zhuǎn)換為 non-Object type 遵循下表
input Type | Result |
---|---|
Undefined | input argument |
Null | input argument |
Boolean | input argument |
Number | input argument |
String | input argument |
Object | 忽略 第二個(gè)參數(shù) hint PreferredType 直接調(diào)用內(nèi)置方法 [[DefaultValue]] |
標(biāo)準(zhǔn)里提到,分別攜帶參數(shù) "toString"/"valueOf" 調(diào)用內(nèi)置方法 [[Get]] 獲取傳入的參數(shù),再通過調(diào)用 IsCallable 方法判斷其是否有 [[call]] 方法采取調(diào)用 [[call]] 再次拿到 primitiveValue
通俗地理解就是,分類討論 + 遞歸調(diào)用,將所有的 Object 轉(zhuǎn)換為 non-Object
參考:
http://es5.github.io/#x9.1
http://es5.github.io/#x8.12.8
http://es5.github.io/#x9.11
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/92960.html
摘要:其實(shí)這三個(gè)函數(shù)不僅僅可以當(dāng)作構(gòu)造函數(shù),它們可以直接當(dāng)作普通的函數(shù)來使用,將任何類型的參數(shù)轉(zhuǎn)化成原始類型的值其實(shí)這三個(gè)函數(shù)用于類型轉(zhuǎn)換的時(shí)候,調(diào)用的就是內(nèi)部的方法這里解釋一下的過程執(zhí)行執(zhí)行內(nèi)部函數(shù)執(zhí)行因?yàn)椴皇窃碱愋停M(jìn)入下一步。 本文修改自本人以前寫的文章。 從類型說起 js只有7種類型: 原始類型(primitives types) boolean number 包括Infi...
摘要:返回值類型是根據(jù)傳入的值是否為空字符串,選擇性調(diào)用方法代碼是一個(gè)抽象的操作,將傳入的參數(shù)值轉(zhuǎn)換為類型的值,這一過程是參照一個(gè)規(guī)則進(jìn)行,規(guī)則如下表傳入?yún)?shù)的類型返回的結(jié)果返回參數(shù)值參考下面詳細(xì)闡述調(diào)用方法,返回詳細(xì)闡述類型包括特殊的數(shù)值,還包 String(value) 返回值類型是 string value 根據(jù)傳入的值是否為空字符串,選擇性調(diào)用 ToString(value) 方法...
摘要:是一個(gè)布爾值,用于確定當(dāng)調(diào)用數(shù)組的方法時(shí),如果傳入?yún)?shù)是一個(gè)數(shù)組,是否需要將這個(gè)數(shù)組拍平。與其他的屬性不同的是,并不默認(rèn)出現(xiàn)在標(biāo)準(zhǔn)對(duì)象中。 ECMAScript 6 通過在原型鏈上定義與Symbol相關(guān)的屬性來暴露語言內(nèi)部邏輯,使得開發(fā)者可以對(duì)一些語言的默認(rèn)行為做配置。接下來我們來看看有哪些重要的Symbol屬性可供我們使用: 1: Symbol.hasInstance 一個(gè)在執(zhí)行 i...
摘要:在中的關(guān)系比較運(yùn)算,指的是像這種大小值的關(guān)系比較。而相等比較,可區(qū)分為標(biāo)準(zhǔn)相等比較與嚴(yán)格相等比較兩大種類。 在JS中的關(guān)系比較(Relational Comparison)運(yùn)算,指的是像x < y這種大小值的關(guān)系比較。 而相等比較,可區(qū)分為標(biāo)準(zhǔn)相等(standard equality)比較x == y與嚴(yán)格相等(strict equality)比較x === y兩大種類。嚴(yán)格相等比較會(huì)...
摘要:這種情況,它們返回一個(gè)布爾型值。語法描述邏輯非如果能轉(zhuǎn)換為,返回如果能轉(zhuǎn)換為,則返回。轉(zhuǎn)中能夠轉(zhuǎn)換為的字面量是可枚舉的,包含空字符串。 博客 github 地址: https://github.com/HCThink/h-blog/blob/master/interesting/in5.md github 首頁(star+watch,一手動(dòng)態(tài)直達(dá)): https://github....
閱讀 3555·2021-10-09 09:43
閱讀 6158·2021-09-07 10:15
閱讀 2752·2019-08-30 14:03
閱讀 3079·2019-08-29 11:01
閱讀 1719·2019-08-29 10:56
閱讀 1079·2019-08-28 17:52
閱讀 3506·2019-08-26 11:42
閱讀 2556·2019-08-26 10:33