摘要:如果被標志為,則會進行下面的操作來轉換輸入的值如果輸入的值已經是個原始值,則直接返回它。否則,拋出異常。如果被標志為,則轉換操作的第二步和第三步的順序會調換。參數結果布爾值被轉換為轉換為數字無需轉換字符串由字符串解析為數字。
隱式轉換實質 ToPrimitive():將值轉換為原始值
JavaScript 引擎內部的抽象操作 ToPrimitive()有著這樣的簽名:
ToPrimitive (input,PreferredType?)
可選參數 PreferredType 可以是 Number 或者 String,它只代表了一個轉換的偏好,轉換結果不一定必須是這個參數所指的類型,但轉換結果一定是一個原始值。如果 PreferredType 被標志為 Number,則會進行下面的操作來轉換輸入的值(59.1):
如果輸入的值已經是個原始值,則直接返回它。
否則,如果輸入的值是一個對象。則調用該對象的 valueof ()方法。如果 valueOf()方法的返回值是一個原始值,則返回這個原始值。
否則,調用這個對象的 toString()方法。如果 tostring()方法的返回值是一個原始值,則返回這個原始值。
否則,拋出 TypeError 異常。
如果 PreferredType 被標志為 string,則轉換操作的第二步和第三步的順序會調換。如果沒有 PreferredType 這個參數,則 preferredrype 的值會按照這樣的規則來自動設置:Date 類型的對象會被設置為 string,其它類型的值會被設置為 Number.
ToNumber():將值轉換為數字下面的表格解釋了 ToNumber()是如何將原始值轉換成數字的。
參數 | 結果 |
---|---|
undefined | NaN |
null | +0 |
布爾值 | true 被轉換為 1, false 轉換為+0 |
數字 | 無需轉換 |
字符串 | 由字符串解析為數字。例如,"324"被轉換為 324 |
如果輸入的值是一個對象,則會首先會調用 roPrimitive (obj, Number)將該對象轉換為原始值,然后在調用 roNumber()將這個原始值轉換為數字。
ToString():將值轉換為字符串下面的表格解釋了 ToString()是如何將原始值轉換成字符串的。
參數 | 結果 |
---|---|
undefined | "undefined" |
null | "null" |
布爾值 | “true"或者"false" |
數字 | 數字作為字符串,比如。"1.765*" |
字符串 | 無需轉換 |
如果輸入的值是一個對象,則會首先會調用 toPrimitive (obj,String)將該對象轉換為原始值,然后再調用 roString()將這個原始值轉換為字符串。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/94472.html
摘要:下面先看看涉及到的幾個函數以及他們的轉換規則,這個是需要記憶的內容類型轉換需要使用到的函數對于布爾值用到的是對于數值,用到的是當然還有但是對于隱式類型轉換的時候,調用的是前者。 javaScript類型轉換規則 javaScript的類型轉換其實一直是很多前端開發人員很迷的地方,一會兒這里要轉換,一會兒那里又要轉換,總之就是一個大寫的迷,因為它隱式類型轉換的地方實在是太多了。 但其實...
摘要:中的基本數據類型有種,引用數據類型則是指除了上述基本數據類型以外的所有值,比如隱式類型轉換加法的隱式轉換轉換為原始值當需要轉換為原始值時,引擎內部會進行抽象操作。 showImg(https://segmentfault.com/img/bVbqjVM); 基本運算規則 +的使用有兩種情況 當+連接兩個變量或值時即為二元運算符,比如a + b,當+在變量或值前面時,則為一元運算符,比...
摘要:相對于顯式使用,隱式轉換則更加簡潔。隱式轉換為布爾值將其他類型值隱式轉換為布爾值是我們最常用的一種轉換。在以下場景中,都是進行判斷,而只要傳入的值不是布爾值,都會通過隱式類型轉換轉為布爾值。原文地址阿木木的博客與隱式鴨子類型轉換 showImg(https://segmentfault.com/img/remote/1460000017309581); 前言 說實話,JavaScrip...
摘要:與此相對,強類型語言的類型之間不一定有隱式轉換。三為什么是弱類型弱類型相對于強類型來說類型檢查更不嚴格,比如說允許變量類型的隱式轉換,允許強制類型轉換等等。在中,加性運算符有大量的特殊行為。 從++[[]][+[]]+[+[]]==10?深入淺出弱類型JS的隱式轉換 本文純屬原創? 如有雷同? 純屬抄襲? 不甚榮幸! 歡迎轉載! 原文收錄在【我的GitHub博客】,覺得本文寫的不算爛的...
摘要:棧區由編譯器自動分配釋放,存放函數的參數值,局部變量的值等。其操作方式類似于數據結構中的棧。屬性返回對創建此對象的構造函數的引用。所有的和都是宿主對象參考高級程序設計堆和棧的概念和區別全面解析中的數據類型與類型轉換 數據類型 數據類型劃分 javascript中定義了6中基本數據類型(原始值類型),和一種復雜數據類型(引用類型),所謂復雜類型,其本質是由無序的名值對(key:val...
閱讀 3353·2021-11-22 15:22
閱讀 2879·2021-10-12 10:12
閱讀 2172·2021-08-21 14:10
閱讀 3840·2021-08-19 11:13
閱讀 2857·2019-08-30 15:43
閱讀 3238·2019-08-29 16:52
閱讀 458·2019-08-29 16:41
閱讀 1446·2019-08-29 12:53