成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

隱式轉(zhuǎn)換實(shí)質(zhì)

jiekechoo / 2574人閱讀

摘要:如果被標(biāo)志為,則會進(jìn)行下面的操作來轉(zhuǎn)換輸入的值如果輸入的值已經(jīng)是個(gè)原始值,則直接返回它。否則,拋出異常。如果被標(biāo)志為,則轉(zhuǎn)換操作的第二步和第三步的順序會調(diào)換。參數(shù)結(jié)果布爾值被轉(zhuǎn)換為轉(zhuǎn)換為數(shù)字無需轉(zhuǎn)換字符串由字符串解析為數(shù)字。

隱式轉(zhuǎn)換實(shí)質(zhì) ToPrimitive():將值轉(zhuǎn)換為原始值

JavaScript 引擎內(nèi)部的抽象操作 ToPrimitive()有著這樣的簽名:

ToPrimitive (input,PreferredType?)

可選參數(shù) PreferredType 可以是 Number 或者 String,它只代表了一個(gè)轉(zhuǎn)換的偏好,轉(zhuǎn)換結(jié)果不一定必須是這個(gè)參數(shù)所指的類型,但轉(zhuǎn)換結(jié)果一定是一個(gè)原始值。如果 PreferredType 被標(biāo)志為 Number,則會進(jìn)行下面的操作來轉(zhuǎn)換輸入的值(59.1):

如果輸入的值已經(jīng)是個(gè)原始值,則直接返回它。

否則,如果輸入的值是一個(gè)對象。則調(diào)用該對象的 valueof ()方法。如果 valueOf()方法的返回值是一個(gè)原始值,則返回這個(gè)原始值。

否則,調(diào)用這個(gè)對象的 toString()方法。如果 tostring()方法的返回值是一個(gè)原始值,則返回這個(gè)原始值。

否則,拋出 TypeError 異常。

如果 PreferredType 被標(biāo)志為 string,則轉(zhuǎn)換操作的第二步和第三步的順序會調(diào)換。如果沒有 PreferredType 這個(gè)參數(shù),則 preferredrype 的值會按照這樣的規(guī)則來自動設(shè)置:Date 類型的對象會被設(shè)置為 string,其它類型的值會被設(shè)置為 Number.

ToNumber():將值轉(zhuǎn)換為數(shù)字

下面的表格解釋了 ToNumber()是如何將原始值轉(zhuǎn)換成數(shù)字的。

參數(shù) 結(jié)果
undefined NaN
null +0
布爾值 true 被轉(zhuǎn)換為 1, false 轉(zhuǎn)換為+0
數(shù)字 無需轉(zhuǎn)換
字符串 由字符串解析為數(shù)字。例如,"324"被轉(zhuǎn)換為 324

如果輸入的值是一個(gè)對象,則會首先會調(diào)用 roPrimitive (obj, Number)將該對象轉(zhuǎn)換為原始值,然后在調(diào)用 roNumber()將這個(gè)原始值轉(zhuǎn)換為數(shù)字。

ToString():將值轉(zhuǎn)換為字符串

下面的表格解釋了 ToString()是如何將原始值轉(zhuǎn)換成字符串的。

參數(shù) 結(jié)果
undefined "undefined"
null "null"
布爾值 “true"或者"false"
數(shù)字 數(shù)字作為字符串,比如。"1.765*"
字符串 無需轉(zhuǎn)換

如果輸入的值是一個(gè)對象,則會首先會調(diào)用 toPrimitive (obj,String)將該對象轉(zhuǎn)換為原始值,然后再調(diào)用 roString()將這個(gè)原始值轉(zhuǎn)換為字符串。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/94472.html

相關(guān)文章

  • Front-end developmenter必看,超實(shí)用的javaScript隱式類型轉(zhuǎn)換規(guī)則記憶

    摘要:下面先看看涉及到的幾個(gè)函數(shù)以及他們的轉(zhuǎn)換規(guī)則,這個(gè)是需要記憶的內(nèi)容類型轉(zhuǎn)換需要使用到的函數(shù)對于布爾值用到的是對于數(shù)值,用到的是當(dāng)然還有但是對于隱式類型轉(zhuǎn)換的時(shí)候,調(diào)用的是前者。 javaScript類型轉(zhuǎn)換規(guī)則 javaScript的類型轉(zhuǎn)換其實(shí)一直是很多前端開發(fā)人員很迷的地方,一會兒這里要轉(zhuǎn)換,一會兒那里又要轉(zhuǎn)換,總之就是一個(gè)大寫的迷,因?yàn)樗[式類型轉(zhuǎn)換的地方實(shí)在是太多了。 但其實(shí)...

    fuchenxuan 評論0 收藏0
  • 理解JS中的加號運(yùn)算符

    摘要:中的基本數(shù)據(jù)類型有種,引用數(shù)據(jù)類型則是指除了上述基本數(shù)據(jù)類型以外的所有值,比如隱式類型轉(zhuǎn)換加法的隱式轉(zhuǎn)換轉(zhuǎn)換為原始值當(dāng)需要轉(zhuǎn)換為原始值時(shí),引擎內(nèi)部會進(jìn)行抽象操作。 showImg(https://segmentfault.com/img/bVbqjVM); 基本運(yùn)算規(guī)則 +的使用有兩種情況 當(dāng)+連接兩個(gè)變量或值時(shí)即為二元運(yùn)算符,比如a + b,當(dāng)+在變量或值前面時(shí),則為一元運(yùn)算符,比...

    nodejh 評論0 收藏0
  • 33 個(gè) js 核心概念(四):顯式 (名義) 與 隱式 (鴨子)類型轉(zhuǎn)換

    摘要:相對于顯式使用,隱式轉(zhuǎn)換則更加簡潔。隱式轉(zhuǎn)換為布爾值將其他類型值隱式轉(zhuǎn)換為布爾值是我們最常用的一種轉(zhuǎn)換。在以下場景中,都是進(jìn)行判斷,而只要傳入的值不是布爾值,都會通過隱式類型轉(zhuǎn)換轉(zhuǎn)為布爾值。原文地址阿木木的博客與隱式鴨子類型轉(zhuǎn)換 showImg(https://segmentfault.com/img/remote/1460000017309581); 前言 說實(shí)話,JavaScrip...

    hoohack 評論0 收藏0
  • 從 ++[[]][+[]]+[+[]]==10? 深入淺出弱類型 JS 的隱式轉(zhuǎn)換

    摘要:與此相對,強(qiáng)類型語言的類型之間不一定有隱式轉(zhuǎn)換。三為什么是弱類型弱類型相對于強(qiáng)類型來說類型檢查更不嚴(yán)格,比如說允許變量類型的隱式轉(zhuǎn)換,允許強(qiáng)制類型轉(zhuǎn)換等等。在中,加性運(yùn)算符有大量的特殊行為。 從++[[]][+[]]+[+[]]==10?深入淺出弱類型JS的隱式轉(zhuǎn)換 本文純屬原創(chuàng)? 如有雷同? 純屬抄襲? 不甚榮幸! 歡迎轉(zhuǎn)載! 原文收錄在【我的GitHub博客】,覺得本文寫的不算爛的...

    miya 評論0 收藏0
  • 基礎(chǔ)回顧-javascript數(shù)據(jù)類型

    摘要:棧區(qū)由編譯器自動分配釋放,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。屬性返回對創(chuàng)建此對象的構(gòu)造函數(shù)的引用。所有的和都是宿主對象參考高級程序設(shè)計(jì)堆和棧的概念和區(qū)別全面解析中的數(shù)據(jù)類型與類型轉(zhuǎn)換 數(shù)據(jù)類型 數(shù)據(jù)類型劃分 javascript中定義了6中基本數(shù)據(jù)類型(原始值類型),和一種復(fù)雜數(shù)據(jù)類型(引用類型),所謂復(fù)雜類型,其本質(zhì)是由無序的名值對(key:val...

    codergarden 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<