在編寫js腳本的時(shí)候,經(jīng)常會(huì)遇到要對(duì)數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換的地方。js實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換的方式主要是三種:轉(zhuǎn)換函數(shù)、強(qiáng)制類型轉(zhuǎn)換、利用js變量弱類型轉(zhuǎn)換。
一、字符串轉(zhuǎn)數(shù)字
js提供了parseInt()和parseFloat()兩個(gè)轉(zhuǎn)換函數(shù)。前者把值轉(zhuǎn)換成整數(shù),后者把值轉(zhuǎn)換成浮點(diǎn)數(shù)。只有對(duì)String類型調(diào)用這些方法,這兩個(gè)函數(shù)才能正確運(yùn)行;對(duì)其他類型返回的都是NaN(Not a Number)。
一些示例如下:
parseInt("1234blue"); //returns 1234
parseInt("0xA"); //returns 10
parseInt("22.5"); //returns 22
parseInt("blue"); //returns NaN
parseInt()方法還有基模式,可以把二進(jìn)制、八進(jìn)制、十六進(jìn)制或其他任何進(jìn)制的字符串轉(zhuǎn)換成整數(shù)。基是由parseInt()方法的第二個(gè)參數(shù)指定的,示例如下:
parseInt("AF", 16); //returns 175
parseInt("10", 2); //returns 2
parseInt("10", 8); //returns 8
parseInt("10", 10); //returns 10
//如果十進(jìn)制數(shù)包含前導(dǎo)0,那么最好采用基數(shù)10,這樣才不會(huì)意外地得到八進(jìn)制的值。例如:
parseInt("010"); //returns 8
parseInt("010", 8); //returns 8
parseInt("010", 10); //returns 10
parseFloat()方法與parseInt()方法的處理方式相似。
使用parseFloat()方法的另一不同之處在于,字符串必須以十進(jìn)制形式表示浮點(diǎn)數(shù),parseFloat()沒有基模式。
parseFloat("1234blue"); //returns 1234.0
parseFloat("0xA"); //returns NaN
parseFloat("22.5"); //returns 22.5
parseFloat("22.34.5"); //returns 22.34
parseFloat("0908"); //returns 908
parseFloat("blue"); //returns NaN
強(qiáng)制類型轉(zhuǎn)換Number(value)——把給定的值轉(zhuǎn)換成數(shù)字(可以是整數(shù)或浮點(diǎn)數(shù)),與parseInt()和parseFloat()方法的處理方式相似,只是它轉(zhuǎn)換的是整個(gè)值,而不是部分值。
Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number( "5.5 ") 5.5
Number( "56 ") 56
Number( "5.6.7 ") NaN
Number(new Object()) NaN
Number(100) 100
二、 字符串、數(shù)組互轉(zhuǎn)
- 字符串=>數(shù)組
split() 方法用于把一個(gè)字符串分割成字符串?dāng)?shù)組。
var str="How,are,you,doing,today";
var n=str.split(",");//n=['How','are','you','doing','today']
- 數(shù)組=>字符串
toString() 方法可把數(shù)組轉(zhuǎn)換為字符串,并返回結(jié)果。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.toString();//'Banana,Orange,Apple,Mango'
不怕千萬人阻擋,只怕自己投降。