? 字符串與各種類型轉(zhuǎn)換
? 數(shù)字跟各種類型轉(zhuǎn)換
? boolean類型跟各種類型轉(zhuǎn)換
1.顯式的類型轉(zhuǎn)換
?轉(zhuǎn)換為數(shù)值類型:
? Number(mix)颅崩、
? parseInt(string,radix)
? parseFloat(string)
?轉(zhuǎn)換為字符串類型:
? String(mix)
?轉(zhuǎn)換為布爾類型:
? Boolean(mix)
1.1數(shù)值類型的轉(zhuǎn)換
1)Number(mix)函數(shù)肢专,可以將任意類型的參數(shù)mix轉(zhuǎn)換為數(shù)值類型
? 如果是布爾值吧凉,true和false分別被轉(zhuǎn)換為1和0
Number(true)// 1
? 如果是數(shù)字值,返回本身业簿。
? 如果是null女轿,返回0. ? 如果是undefined纠拔,返回NaN付鹿。
? 如果是字符串,遵循以下規(guī)則:
?如果字符串中只包含數(shù)字炎滞,則將其轉(zhuǎn)換為十進(jìn)制(忽略前導(dǎo)0)
?如果字符串中包含有效的浮點(diǎn)格式敢艰,將其轉(zhuǎn)換為浮點(diǎn)數(shù)值(忽略前導(dǎo)0)
?如果是空字符串,將其轉(zhuǎn)換為0
?如果字符串中包含非以上格式册赛,則將其轉(zhuǎn)換為NaN
?單加法操作跟Number函數(shù)效果一致:
? var b, a = false;
? b = +a;// b = 0 => b= Number(a);
? b = + "123" // b = 123 ,把字符串轉(zhuǎn)為數(shù)字
Number轉(zhuǎn)換.png
2)parseInt轉(zhuǎn)換數(shù)字
?parseInt(string钠导,radix)函數(shù),將字符串轉(zhuǎn)換為整數(shù)類型的數(shù)值击奶。它也有一定的規(guī)則:
? 忽略字符串前面的空格辈双,直至找到第一個(gè)非空字符
? 如果第一個(gè)字符不是數(shù)字符號(hào)或者負(fù)號(hào),返回NaN
? 如果第一個(gè)字符是數(shù)字柜砾,則繼續(xù)解析直至字符串解析完畢或者遇到一個(gè)非數(shù)字符號(hào)為止
? 如果上步解析的結(jié)果以0開頭,則將其當(dāng)作八進(jìn)制來(lái)解析换衬;如果以0x開頭痰驱,則將其當(dāng)作十六進(jìn)制來(lái)解析
?parseFloat(string)函數(shù)证芭,將字符串轉(zhuǎn)換為浮點(diǎn)數(shù)類型的數(shù)值。其他規(guī)則同 parseInt担映。
parseInt轉(zhuǎn)換.png
1.2 String方法轉(zhuǎn)換
String(mix)函數(shù)废士,將任何類型的值轉(zhuǎn)換為字符串,其規(guī)則為: 如果有 toString()方法蝇完,則調(diào)用該方
法并返回結(jié)果
var a = 4; a.toString();//"4"
如果是 null官硝,返回”null” a = null; a.toString();// "null"
如果是 undefined,返回”undefined”
也可以之間用變量+''的方法轉(zhuǎn)換類型為字符串類型短蜕,同 String 函數(shù)氢架。 例如: a + “”; // =>
String(a);
1.3 Boolean(mix)函數(shù)轉(zhuǎn)換
Boolean(mix)函數(shù),將任何類型的值轉(zhuǎn)換為布爾值朋魔。
以下值會(huì)被轉(zhuǎn)換為 false:
false岖研、”"(空字符串)、0警检、NaN孙援、null、undefined扇雕,其余任何值都會(huì)被轉(zhuǎn)換為 true拓售。
Var t = Boolean(123); // t => true
!!兩次取飯跟 Boolean 方法效果一致
var a = 3,b = 0, c = "";
!!a; // true
!!b; //false
!!c; //false
Boolean轉(zhuǎn)換.png
2.隱式類型轉(zhuǎn)換
隱式類型轉(zhuǎn)換:就是當(dāng)表達(dá)式進(jìn)行運(yùn)算時(shí),如果類型不一致镶奉,JavaScript 引擎會(huì)自動(dòng)根據(jù)規(guī)則把類型進(jìn)行
轉(zhuǎn)換后再進(jìn)行運(yùn)輸邻辉。
var b = +a;// 相當(dāng)于 b = Number(a);
var b = !!a; // b = Boolean(a);
var b = a + "";// String(a)
var c = 1 + true; // c=>2
var t = true + ''; // t => true