摘要:如果轉換的結果是,則調用對象的方法,然后再次依照前面的規則轉換返回的字符串值。
to Number parseInt()
僅針對字符串
轉換規則:
1. 忽略字符串前面的空格,直到找到第一個非空格符 2. 如果第一個字符不是數字或負號,返回 NaN parseInt("") => NaN 3. 如果第一個字符是數字字符,繼續解析第二個字符,直到解析完所有后續字符或遇到一個非數字字符 parseInt("9527great") => 9527 parseInt("11.4") => 11 4. 可以識別出各種整數字符(十進制、八進制、十六進制) parseInt("0xA") => 10 parseInt("070") => 56 在解析八進制時,ES3 和 ES5 存在分歧,為消除不必要的麻煩,建議傳入第二個參數以表示轉換時使用的基數(即進制數) parseInt("070", 8) => 56 // 當作八進制數來解析 parseInt("070", 10) => 70 // 當作十進制數來解析parseFloat()
僅針對字符串
轉換規則:
1. 忽略字符串前面的空格,直到找到第一個非空格符 2. 如果第一個字符不是數字或負號,返回 NaN parseFloat("") => NaN 3. 從位置 0 開始解析每個字符,一直解析到字符串末尾,或解析遇到一個無效的浮點數字符為止 parseFloat("9527.23great") => 9527.23 4. 第一個小數點有效,第二個小數點無效 parseFloat("22.34.56") => 22.34 5. 始終會忽略前導的 0 parseFloat("0729.4") => 729.4 6. 只解析十進制整數格式 無第二個參數指定基數的用法 十六進制格式的字符串始終會被解析成 0 parseFloat("0xF") => 0 parseFloat("3.12e7") => 31200000Number()
boolean
Number(true) => 1 Number(false) => 0
number
只是簡單的傳入與傳出 Number(2) => 2
null
Number(null) => 0
undefined
Number(undefined) => NaN
string
1. 只包含數字,將其轉換為十進制 Number("1") => 1 Number("011") => 11 2. 包含有效的浮點格式,將其轉換為對應的浮點數值 Number("1.1") => 1.1 Number("02.3") => 2.3 3. 包含有效的十六進制格式,將其轉換為相同大小的十進制數 Number("0xf") => 15 4. 空字符串,將其轉換為 0 Number("") => 0 5. 其它格式字符串,將其轉換為 NaN Number("2.2a") => NaN
對象
如果是對象,則調用對象的 valueOf() 方法,然后依照前面的規則轉換返回的值。 如果轉換的結果是 NaN,則調用對象的 toString() 方法,然后再次依照前面的規則轉換返回的字符串值。 Number({}) => NaN 過程:{}.toString() => "[object Object]" => NaN隱式轉換
等價于 Number(x)
+x
x - 0
to String toString()number、boolean、object、string 都有 toString() 方法
數值的 toString() 方法可以傳遞一個參數指定輸出數值的基數
null 和 undefined 沒有 toString() 方法
String()String() 轉型函數能夠將任何類型的值轉換為字符串
轉換規則
1. 如果值有 toString() 方法,則調用該方法并返回相應的結果 2. 如果值是 null,則返回 "null" 3. 如果值是 undefined,則返回 "undefined"隱式轉換
等價于 String(x)
x + ""
Number to StringtoFixed()
toExponential()
toPrecision()
to Boolean Boolean()
boolean
Boolean(true) => true Booelan(false) => false
string
Boolean("") => false Boolean("非空字符") => true
number
Boolean(0) => false Boolean(NaN) => false Boolean(非零數字值) => true
object
Boolean(null) => false Boolean(任何對象) => true
undefined
Boolean(undefined) => false隱式轉換
等價于 Boolean(x)
!!x
值 | 轉換為字符串 | 數字 | 布爾值 | 對象 |
---|---|---|---|---|
undefined | "undefined" | NaN | false | throws TypeError |
null | "null" | 0 | false | throws TypeError |
true | "true" | 1 | new Boolean(true) | |
false | "false" | 0 | new Boolean(false) | |
"" | 0 | false | new String("") | |
"1.2" | 1.2 | true | new String("1.2") | |
"one" | NaN | true | new String("one") | |
0 | "0" | false | new Number(0) | |
-0 | "0" | false | new Number(-0) | |
NaN | "NaN" | false | Number(NaN) | |
Infinity | "Infinity" | true | new Number(Infinity) | |
-Infinity | "-Infinity" | true | new Number(-Infinity) | |
1 | "1" | true | new Number(1) | |
{}(任意對象) | true | |||
[](任意數組) | "" | 0 | true | |
[9](1個數字元素) | "9" | 9 | true | |
["a"](其他數組) | 使用 join() 方法 | NaN | true | |
function(){}(任意函數) | NaN | true |
參考資料:
《JavaScript 權威指南》 (第6版) [美].David Flanagan著 淘寶前端團隊譯 《JavaScript 高級程序設計》 (第3版) [美].Nicholas C.Zakas著 李松峰 曹力譯
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/82348.html
摘要:所謂裝箱轉換,正是把基本類型轉換為對應的對象,他是類型轉換中一種相當重要的種類。拆箱轉換在標準中,規定了函數,它是對象類型到基本類型的轉換即,拆箱轉換。拆箱轉換會嘗試調用和來獲得拆箱后的基本類型。 JavaScript隱式類型轉換 基本數據類型 ECMAScript 一共定義了七種 build-in types,其中六種為 Primitive Value,Null, Undefined...
摘要:在編程語言中,能夠表示并操作的值的類型稱做數據類型。中的原始類型包括數字,字符串和布爾值。日期與時間語言核心包括構造函數,用來創建表示日期和時間的對象。其規則為如果是布爾值,和分別被轉換為和如果是數字值,返回本身。 源代碼: https://github.com/RobinQu/Programing-In-Javascript/blob/master/chapters/Javas...
摘要:完整清單是中添加,此處不予介紹布爾值用來表示可能是真或假的值。結果抽象比較運算符在比較它們之前在類型之間進行自動轉換。中的隱式轉換稱為強制類型轉換,并在規范中定義。這些內置類型可用于在不同類型之間進行顯式轉換。 翻譯:瘋狂的技術宅原文:https://www.valentinog.com/bl... 本文首發微信公眾號:前端先鋒歡迎關注,每天都給你推送新鮮的前端技術文章 show...
摘要:原始類型分別有類型類型和類型三種。類型中存在一個特殊的值叫。也可以把其他類型的數據自動轉換為類型運算符運算符判斷原始類型語法結構變量名稱。 數據類型 1.數據類型的概述;在JavaScript代碼中,能夠表示并且操作值的類型就叫做數據類型數據類型可以分成可變類型和不可變類型,可變類型的值是可以修改的。相反不可變類型的值是不可以修改的。數據類型還有原始類型(原始值)與引用類型(內置對象)...
摘要:下面先看看涉及到的幾個函數以及他們的轉換規則,這個是需要記憶的內容類型轉換需要使用到的函數對于布爾值用到的是對于數值,用到的是當然還有但是對于隱式類型轉換的時候,調用的是前者。 javaScript類型轉換規則 javaScript的類型轉換其實一直是很多前端開發人員很迷的地方,一會兒這里要轉換,一會兒那里又要轉換,總之就是一個大寫的迷,因為它隱式類型轉換的地方實在是太多了。 但其實...
摘要:下面分幾步來簡單的探探不同類型的轉換吧以下的內容,都可以從權威指南中找到。其他值轉換成在編寫代碼的過程中,幾乎不用考慮它的取值類型。核心內置類,會嘗試先于可以理解為對象優先轉換成數字例外的是,利用的是轉換。 最近在寫公司的登錄注冊模塊,遇到類型不同相比較的時候,就心驚膽戰,每次都要用瀏覽器來驗證一下,決定亂七八糟的隨便寫一下,方便日后自己回顧知識~ 弱類型帶來的那些讓人迷糊的事 弱類型...
閱讀 1505·2023-04-26 01:28
閱讀 3321·2021-11-22 13:53
閱讀 1432·2021-09-04 16:40
閱讀 3195·2019-08-30 15:55
閱讀 2687·2019-08-30 15:54
閱讀 2494·2019-08-30 13:47
閱讀 3374·2019-08-30 11:27
閱讀 1154·2019-08-29 13:21