1.調(diào)用Number()來(lái)對(duì)string進(jìn)行值類(lèi)型轉(zhuǎn)換。
2.parseInt()。
3.parseFloat()。
Number()
使用Number()函數(shù)來(lái)對(duì)string進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換是最直接的做法。不過(guò),這種做法有一個(gè)局限性:如果字符串截去開(kāi)頭和結(jié)尾的空白字符后,不是純數(shù)字字符串,那么最終返回結(jié)果為NaN。David Flanagan的JavaScript – The Definitive Guide 6th edition, 3.8.2節(jié)提到,用Number()函數(shù)來(lái)進(jìn)行string-to-number轉(zhuǎn)換時(shí),函數(shù)只接受10進(jìn)制字符串,但測(cè)試結(jié)果表明事實(shí)并非如此,Number()函數(shù)可以接受”0xff”作為參數(shù)并將其轉(zhuǎn)換成數(shù)值255。
代碼如下:
var a = " 42";
var b = " 42mm";
var c = "0xff";
var d = "42.34";
console.log(Number(a));//42
console.log(Number(b));//NaN
console.log(Number(c));//255
console.log(Number(d));//42.34
parseInt()
parseInt()函數(shù)可以將字符串轉(zhuǎn)換成一個(gè)整數(shù),與Number()函數(shù)相比,parseInt()函數(shù)不僅可以解析純數(shù)字字符串,也可以解析以數(shù)字開(kāi)頭的部分?jǐn)?shù)字字符串(非數(shù)字部分字符串在轉(zhuǎn)換過(guò)程中會(huì)被去除)。值得注意的是,當(dāng)parseInt()函數(shù)所解析的是浮點(diǎn)數(shù)字符串時(shí),取整操作所使用的方法為“向下取整”(truncate)。
除了字符串作為第一個(gè)參數(shù),parseInt()函數(shù)還可以接受2到36之間的任意整數(shù)作為第二個(gè)參數(shù),用于指定轉(zhuǎn)換過(guò)程中的進(jìn)制數(shù)。
代碼如下:
var b = " 42mm";
var c = "0xff";
var x = "-12.34";
var y = "15.88";
var z = "101010";
console.log(parseInt(b));//42
console.log(parseInt(x));//-12
console.log(parseInt(y));//15
console.log(parseInt(c));//255
console.log(parseInt(z, 2));//42
console.log(parseInt(".1"));//NaN
parseFloat()
與parseInt()一樣,parseFloat()也可以解析以數(shù)字開(kāi)頭的部分?jǐn)?shù)字字符串(非數(shù)字部分字符串在轉(zhuǎn)換過(guò)程中會(huì)被去除)。與parseInt()不同的是,parseFloat()可以將字符串轉(zhuǎn)換成浮點(diǎn)數(shù);但同時(shí),parseFloat()只接受一個(gè)參數(shù),且僅能處理10進(jìn)制字符串。
代碼如下:
var c = "0xff";
var d = "42.34";
console.log(parseFloat(c));//0, because "0xff" start with 0
console.log(parseFloat(d));//42.34
console.log(parseFloat(".1"));//0.1
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。