一痴施、字符串轉(zhuǎn)換為數(shù)字:
在js讀取文本框或者其它表單數(shù)據(jù)的時候獲得的值是字符串類型的,例如兩個文本框a和b,如果獲得a的value值為11,b的value值為9 ,那么a.value要小于b.value,因?yàn)樗麄兌际亲址问降?所以在比較前需要將它們各自的值轉(zhuǎn)換為Number類型。
主要的方法有三種:
轉(zhuǎn)換函數(shù)、強(qiáng)制類型轉(zhuǎn)換汇鞭、利用js變量弱類型轉(zhuǎn)換位隶。
1.轉(zhuǎn)換函數(shù)parseInt()和parseFloat();
parseInt(str):將字符串類型轉(zhuǎn)換為整型讯檐,當(dāng)函數(shù)的參數(shù)不是字符串時,函數(shù)返回NaN(Not a Number);
parseFloat(str): 將字符串類型轉(zhuǎn)換為浮點(diǎn)型挺物,當(dāng)函數(shù)的參數(shù)不是字符串時,函數(shù)返回NaN(Not a Number);
注1:凡是一切表示數(shù)的形式的字符串都可以通過上面的兩個函數(shù)轉(zhuǎn)化為數(shù)字飘弧,例如:
普通的數(shù)字 : parseInt('123') // 123
?浮點(diǎn)數(shù) : ?parseInt('123.45') // 123
十六進(jìn)制數(shù):parseInt('0x11') // 17
科學(xué)計數(shù)法: parseInt('3e12') // 3;? parseInt('13e12') // 13;
注2:parseInt()函數(shù)支持十六進(jìn)制形式的字符串轉(zhuǎn)換為整型识藤,但是parseFloat()函數(shù)不支持十六進(jìn)制形式的字符串轉(zhuǎn)換為浮點(diǎn)型,但是會返回數(shù)字0.原因是parseFloat()函數(shù)將參數(shù)為十六進(jìn)制的字符串 "0x11"的第一個字符零(0)看做數(shù)字次伶,將其他的忽略痴昧。
2.強(qiáng)制類型轉(zhuǎn)換
可使用強(qiáng)制類型轉(zhuǎn)換(type casting)處理轉(zhuǎn)換值的類型。使用強(qiáng)制類型轉(zhuǎn)換可以訪問特定的值冠王,即使它是另一種類型的赶撰。
ECMAScript中可用的3種強(qiáng)制類型轉(zhuǎn)換如下:
Boolean(value)——把給定的值轉(zhuǎn)換成Boolean型;
Number(value)——把給定的值轉(zhuǎn)換成數(shù)字(可以是整數(shù)或浮點(diǎn)數(shù));
String(value)——把給定的值轉(zhuǎn)換成字符串豪娜。
用這三個函數(shù)之一轉(zhuǎn)換值餐胀,將創(chuàng)建一個新值,存放由原始值直接轉(zhuǎn)換成的值瘤载。這會造成意想不到的后果否灾。
當(dāng)要轉(zhuǎn)換的值是至少有一個字符的字符串、非0數(shù)字或?qū)ο髸r惕虑,Boolean()函數(shù)將返回true坟冲。如果該值是空字符串、數(shù)字0溃蔫、undefined或null健提,它將返回false。
3. 利用js變量弱類型轉(zhuǎn)換
二伟叛、數(shù)字轉(zhuǎn)換為字符串
強(qiáng)制類型轉(zhuǎn)換私痹、利用js變量弱類型轉(zhuǎn)換
1.強(qiáng)制類型轉(zhuǎn)換:String(value)——把給定的值轉(zhuǎn)換成字符串。
2.利用js變量弱類型轉(zhuǎn)換:數(shù)字+字符串 // 123+"456"------>"123456"