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