摘要:下面看一下提供的種常見的轉數(shù)字的方法。一數(shù)字正常轉換,可處理十進制,二進制,八進制和十六進制。也是一直解析到字符串末尾,或者解析到遇見一個無效的浮點數(shù)字字符為止。處理浮點數(shù)會取整不會。
js中轉數(shù)字的方法有哪些?我經(jīng)常會用字符串*1,但是如果碰到一些特殊的情況,使用這種方式會帶來不必要的麻煩。下面看一下js提供的3種常見的轉數(shù)字的方法。
一、 Number()1.數(shù)字正常轉換,可處理十進制,二進制,八進制和十六進制。
Number(0000012323) //5331 Number(0xf) //15 Number(001) //1 Number(1.1) //1.1 Number(0.11) //0.11 浮點數(shù)也正常轉換 Number(00.11) //報錯
2.布爾值;其他類型
Number(false) //0 Number(true) //1 Number() // 0 //空返回0 Number("") //0 Number(null) //0 Number(undefined) //NaN
3.字符串
Number("0xf") //15 //1.十六進制格式,如“0xf”,將其轉換為相同大小的十進制數(shù)值 Number("0000012323") //12323 //2.前導0會被忽略 Number("0.11") //0.11 Number("00.11") //0.11 //3.浮點數(shù)會正常轉換,并忽略前導0 Number("1b1")//NaN//4.其他情況字符串都返回NaN
4.對象:會先調(diào)用valueOf()和toString()方法
Number({a:1}) //NaN === Number("[object Object]") Number([1]) //1 ===Number("1") Number([1,2]) //NaN === Number("1,2")二、parseInt(num,type)
parseInt有2個參數(shù),第二個參數(shù)表示轉換數(shù)字想要的進制。進行轉換時會取整。
1.數(shù)字轉換,將浮點數(shù)轉成整數(shù)
parseInt(10); parseInt(10.1) //10 parseInt(10.1,2) //2 parseInt(0.23) //0 parseInt(10.111.1,10) //報錯:missing ) after argument list parseInt(0010.111,10) //報錯:missing ) after argument list
2.布爾值;其他類型
parseInt(false) //NaN parseInt(null) // NaN parseInt(undefined) //NaN parseInt() //NaN parseInt("") //NaN
3.字符串:字符串開頭如果不是正、負、數(shù)字返回NaN;遇到非數(shù)字或結尾停止解析
parseInt("-1") //-1 parseInt("+1") //1 parseInt("a1") //NaN parseInt("12a") //12 parseInt("12,a") //12 parseInt("012,a") //12 parseInt("0.12,a") //0 parseInt("0000.12,a") //0
4.對象:會先調(diào)用valueOf()和toString()方法,然后按字符串處理
parseInt({a:1}) // NaN === parseInt("[object Object]") parseInt([1,1.2],2) // 1 === parseInt("1,1.2",2) parseInt([10,1.2],2) //2 === parseInt("10,1.2",2)三、parseFloat()
與parseInt() 函數(shù)類似,parseFloat() 也是從第一個字符(位置0)開始解析每一個字符。也是一直解析到字符串末尾,或者解析到遇見一個無效的浮點數(shù)字字符為止。
parseFloat() 只解析十進制,因此它沒有第二個參數(shù)指定基數(shù)的用法
1.數(shù)字
parseFloat(0.2222) //0.2222 parseInt(0xf,10) //15
2.布爾;其他類型
parseFloat() //NaN parseFloat("") //NaN parseFloat(false) //NaN parseFloat(null) //NaN parseFloat(undefined)//NaN
3.字符串
parseFloat("00.123") //0.123 parseFloat("00.123aa") //0.123 //只會取到非數(shù)字前一位 parseFloat("-0.123aa") //-0.123 parseFloat("-123.1.3") //-123.1//遇到第二個小數(shù)點當非數(shù)字處理 parseFloat("-1.0") //-1小數(shù)點后為0時返回整數(shù)
4.對象:同上
parseFloat([1.33,1.2]) //1.33 parseFloat({a:1}) //NaN四、區(qū)別
Number()、parseInt()、parseFloat()區(qū)別總結起來就是:
1.參數(shù)上:Number()、parseFloat都只有一個數(shù)據(jù)源參數(shù);()parseInt()多一個進制處理的參數(shù)。
2.處理浮點數(shù):parseInt()會取整;Number()、parseFloat()不會。
3.處理機制:Number處理數(shù)據(jù)時發(fā)現(xiàn)非數(shù)字(不包括正、負號)就會返回NaN;parseInt只要在數(shù)據(jù)開頭發(fā)現(xiàn)數(shù)字就不會返回NaN。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106543.html
摘要:隱式類型轉換與顯示類型轉換不是官方給的內(nèi)容隱式類型轉換轉換為類型類型轉換后內(nèi)容不變用法單引或雙引代碼示例圖定義類型類型和類型的變量一花一世界控制臺示例圖轉換為類型用法其他類型類型轉換為類型如果文本內(nèi)容是普通的文本非數(shù)字轉換后的結果 隱式類型轉換與顯示類型轉換 - (不是官方給的內(nèi)容) 隱式類型轉換 1.轉換為string類型 - 類型轉換后內(nèi)容不變 - 用法: + (單引)或 (雙引)...
摘要:函數(shù)在轉換字符串時,更多的是看其是否符合數(shù)值模式。例如,會被轉換為,因為會被完全忽略。類似地,會被轉換為,因為小數(shù)點并不是有效的數(shù)字字符。指定基數(shù)會影響到轉換的輸出結果。舉例來說,將會被轉換為。但十六進制格式的字符串則始終會被轉換成。 以下三個函數(shù)將非數(shù)值轉換為數(shù)值:Number() 、parseInt()和 parseFloat() Number()的轉換規(guī)則 Boolean值 ...
摘要:元素是通過指定的分隔符進行分隔的。返回值一個字符串數(shù)組,執(zhí)行的操作與執(zhí)行的操作是相反的。返回值與沒有參數(shù)的方法返回的字符串相同。 1.javascript刪除元素節(jié)點 IE中有這樣一個方法:removeNode(),這個方法在IE下是好使的,但是在Firefox等標準瀏覽器中就會報錯了 removeNode is not defined,但是在核心JS中有一個操作DOM節(jié)點的方法叫:r...
摘要:元素是通過指定的分隔符進行分隔的。返回值一個字符串數(shù)組,執(zhí)行的操作與執(zhí)行的操作是相反的。返回值與沒有參數(shù)的方法返回的字符串相同。 1.javascript刪除元素節(jié)點 IE中有這樣一個方法:removeNode(),這個方法在IE下是好使的,但是在Firefox等標準瀏覽器中就會報錯了 removeNode is not defined,但是在核心JS中有一個操作DOM節(jié)點的方法叫:r...
摘要:如類型除了可以以十進制表示之外,整數(shù)還可以通過八進制或者十六進制的字面值來表示,其中八進制字面值的第一位必須是,然后是八進制數(shù)字序列。 Javascript 數(shù)據(jù)類型 ECMAscript 中有5種簡單的數(shù)據(jù)類型,也被稱為基本數(shù)據(jù)類型:Undefined、Null、Boolean、Number和String。還有一種復雜的數(shù)據(jù)類型——Object。 Undefined 類型 在使用va...
閱讀 2298·2021-11-24 09:38
閱讀 2060·2021-11-22 14:44
閱讀 1156·2021-07-29 13:48
閱讀 2621·2019-08-29 13:20
閱讀 1119·2019-08-29 11:08
閱讀 2058·2019-08-26 10:58
閱讀 1266·2019-08-26 10:55
閱讀 3159·2019-08-26 10:39