本文轉(zhuǎn)載自https://zhuanlan.zhihu.com/p/48955605
js里數(shù)據(jù)類型包括其中:number亥宿、string、symbol歹嘹、Boolean箩绍、null、undefined尺上、object材蛛。我們所希望進(jìn)行的數(shù)據(jù)類型轉(zhuǎn)換大概包括以下幾種:
- 轉(zhuǎn)為string類型
- 方法一:瀏覽器自帶API:String()方法圆到。
eg: String(123) //"123"
String(true) //"true"
String(null) //"null"
String(undefined) //"undefined"
- 方法二:toString()方法。
eg: a=1; a.toString() //"1"
(true).toString() //"true"
null卑吭、undefined沒有toString()方法芽淡;
object.toString() // [object, Object]→并非想要的;
- 方法三:+“”加空字符串,利用+的連接符特性(與字符串相加豆赏,優(yōu)先將非字符串的數(shù)據(jù)轉(zhuǎn)為字符串挣菲,再進(jìn)行連接)。
eg: 1+"" //"1"
true+"" //"true"
null+"" //"null"
undefined+"" //"undefined"
obj={}; obj+"" // [object, Object]→并非想要的;
2. 轉(zhuǎn)為number類型
一般都是將字符串里的數(shù)字轉(zhuǎn)為number類型
方法一:Number()方法:但凡有不能轉(zhuǎn)換的掷邦,直接返回NaN
eg: Number("123") //123
Number("a") //NaN
Number("1a2") //NaN
- 方法二:parseInt()方法白胀,它會(huì)按順序轉(zhuǎn)換可以轉(zhuǎn)換的,若無法轉(zhuǎn)換抚岗,則停止或杠,返回已轉(zhuǎn)換了的,這是與Number()方法的不同之處
eg: parseInt("1",10)//將字符串“1”轉(zhuǎn)為10進(jìn)制數(shù)字:1;
parseInt("1a234") //1
parseInt("011") //11
parseInt("s") //NaN
- 方法三:parseFloat()方法
eg: parseFloat("1.23") //1.23
parseFloat("1.s2") //1
parseFloat("1.2s5") //1.2
parseFloat("s") // NaN
- 方法四:-0 方法宣蔚,利用減號(hào)的運(yùn)算特性(與數(shù)字相減向抢,優(yōu)先將非數(shù)字的轉(zhuǎn)換為數(shù)字類型,再進(jìn)行運(yùn)算)
eg: "1"-0 //1
"1.23"-0 //1.23
"1.32s4"-0 //NaN
- 取正方法
eg: +"1"http:// 1
+".1" //0.1
+"-1" //-1
-"-1" //1
-(-"-1")//-1
+"s" //NaN
3. 轉(zhuǎn)為Boolean類型
- 方法一:Boolean()方法
Boolean(1) //true
Boolean({}) //true
Boolean([]) //true
Boolean(" ")//(里面是空格字符)true
Boolean(0) //false
Boolean(NaN) //false
Boolean("") //false
Boolean(null) //false
Boolean(undefined) //false
只有這五個(gè)fasly值:0胚委,NaN, ""(空字符串), null, undefined 轉(zhuǎn)為Boolean類型時(shí)為false挟鸠。
falsy值的定義:在Boolean上下文中認(rèn)定可轉(zhuǎn)換為false的值
方法二:兩次取反
eg: !!true //true
!!1 //true
!!0 //false
!!{} //true