詳解JS轉(zhuǎn)換數(shù)值函數(shù)Number()、parseInt()、parseFloat()
JS中有三種函數(shù)可以將非數(shù)值轉(zhuǎn)換成數(shù)值:Number()、parseInt()和parseFloat()。第一個(gè)函數(shù),即轉(zhuǎn)型函數(shù)Number()可以用于任何數(shù)據(jù)類(lèi)型,而另外兩個(gè)函數(shù)則專(zhuān)門(mén)用于把字符串轉(zhuǎn)換成數(shù)值。這3個(gè)函數(shù)對(duì)于同樣的輸入會(huì)返回不同的結(jié)果。
Number()
Number()函數(shù)的轉(zhuǎn)換規(guī)則如下:
•如果參數(shù)是Date對(duì)象,返回從1970年1月1日至今的毫秒數(shù)。
•如果是Boolean值,true和false將分別被替換為1和0
•如果是數(shù)字值,只是簡(jiǎn)單的傳入和返回
•如果是null值,返回0
•如果是undefined,返回NaN
•如果是字符串,遵循下列規(guī)則: •如果字符串只包含數(shù)字(包括十六進(jìn)制格式“0x”),則將其轉(zhuǎn)換成對(duì)應(yīng)的十進(jìn)制。
•如果字符串是空的,返回0。
•如果字符串包含其它字符,返回NaN。
•如果是對(duì)象,則調(diào)用對(duì)象的valueOf()方法,然后依照前面的規(guī)則轉(zhuǎn)換返回的值。如果轉(zhuǎn)換的結(jié)果是NaN,則調(diào)用對(duì)象的toString()方法,然后再依次按照前面的規(guī)則轉(zhuǎn)換返回的字符串值。
document.write(Number(true)+"<br/>"); //返回1
document.write(Number(false)+"<br/>"); //返回0
document.write(Number(null)+"<br/>"); //返回0
document.write(Number(undefined)+"<br/>"); //返回NaN
document.write(Number("001")+"<br/>"); //返回1
document.write(Number("001.1")+"<br/>"); //返回1.1
document.write(Number("0x10")+"<br/>"); //返回16
document.write(Number(new String("11aa"))+"<br/>"); //返回NaN
parseInt()
返回由字符串轉(zhuǎn)換得到的整數(shù)。
parseInt(numString, [radix])
參數(shù)
numString必選項(xiàng)。要轉(zhuǎn)換為數(shù)字的字符串。radix可選項(xiàng)。在 2 和 36 之間的表示 numString 所保存數(shù)字的進(jìn)制的值。如果沒(méi)有提供,則前綴為 '0x' 的字符串被當(dāng)作十六進(jìn)制,前綴為 '0' 的字符串被當(dāng)作八進(jìn)制。所有其它字符串都被當(dāng)作是十進(jìn)制的。
說(shuō)明
parseInt()方法返回與保存在numString中的數(shù)字值相等的整數(shù)。如果numString的前綴不能解釋為整數(shù),則返回NaN(而不是數(shù)字)。它會(huì)忽略字符串前面的空格,直至找到第一個(gè)非空格字符。
示例
document.write(parseInt("1")+"<br/>"); //返回1
document.write(parseInt(" 1")+"<br/>"); //返回1
document.write(parseInt("1.1")+"<br/>"); //返回1
document.write(parseInt("11aa")+"<br/>"); //返回11
document.write(parseInt("020")+"<br/>"); //返回16(八進(jìn)制)
document.write(parseInt("")+"<br/>"); //返回NaN
document.write(parseInt("AF")+"<br/>"); //返回NaN
document.write(parseInt("AF",16)+"<br/>"); //返回175
document.write(parseInt("0xAF")+"<br/>"); //返回175
parseFloat()
返回由字符串轉(zhuǎn)換得到的浮點(diǎn)數(shù)。
parseFloat(numString)
必選項(xiàng) numString 參數(shù)是包含浮點(diǎn)數(shù)的字符串。
說(shuō)明
parseFloat()返回與numString中保存的數(shù)相等的數(shù)字表示。如果numString的前綴不能解釋為浮點(diǎn)數(shù),則返回NaN(而不是數(shù)字)。
總結(jié)
以上所述是小編給大家介紹的JS轉(zhuǎn)換數(shù)值函數(shù)Number()、parseInt()、parseFloat(),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript清除所有(多個(gè))定時(shí)器的方法實(shí)戰(zhàn)案例
定時(shí)器就是由JS提供了一些原生方法來(lái)實(shí)現(xiàn)延時(shí)去執(zhí)行某一段代碼,下面這篇文章主要給大家介紹了關(guān)于JavaScript清除所有(多個(gè))定時(shí)器的方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
localStorage的黑科技-js和css緩存機(jī)制
本文主要介紹了localStorage的黑科技-js和css緩存機(jī)制的相關(guān)知識(shí),具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02
JavaScript canvas實(shí)現(xiàn)流星特效
這篇文章主要為大家詳細(xì)介紹了JavaScript canvas實(shí)現(xiàn)流星特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05
JavaScript中的值是按值傳遞還是按引用傳遞問(wèn)題探討
這篇文章主要介紹了JavaScript中的值是按值傳遞還是按引用傳遞問(wèn)題探討,本文講解了按值傳遞、按引用傳遞、按共享傳遞、基本類(lèi)型的不可變(immutable)性質(zhì)等內(nèi)容,需要的朋友可以參考下2015-01-01
WordPress中鼠標(biāo)懸停顯示和隱藏評(píng)論及引用按鈕的實(shí)現(xiàn)
這篇文章主要介紹了WordPress中鼠標(biāo)懸停顯示和隱藏評(píng)論及引用按鈕的實(shí)現(xiàn),順帶顯示和隱藏評(píng)論者信息的實(shí)現(xiàn)方法,非常實(shí)用,需要的朋友可以參考下2016-01-01
Promise對(duì)象all與race方法手寫(xiě)示例
這篇文章主要為大家介紹了Promise對(duì)象all與race方法手寫(xiě)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Javascript模擬scroll滾動(dòng)效果腳本
項(xiàng)目需要寫(xiě)了一段模擬Scroll滾動(dòng)代碼,分享的同時(shí),我有些疑問(wèn),希望大家能幫忙解決,代碼如下2008-09-09
javascript設(shè)計(jì)模式 – 命令模式原理與用法實(shí)例分析
這篇文章主要介紹了javascript設(shè)計(jì)模式 – 命令模式,結(jié)合實(shí)例形式分析了javascript命令模式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04

