強(qiáng)制類型轉(zhuǎn)換
把數(shù)據(jù)類型轉(zhuǎn)為string(字符串類型)
1.利用var val = num.toString(a);
用點(diǎn)的方法調(diào)用執(zhí)行,將num轉(zhuǎn)為字符串類型
var val = num.toString(a)富蓄;a可以表示進(jìn)制悴势;當(dāng)a=2;此時(shí)會(huì)將num這個(gè)值通過 調(diào)用 toString方法來轉(zhuǎn)換成2進(jìn)制的數(shù)
注意:這個(gè)方法不能把null和undefined類型轉(zhuǎn)為字符串寓辱,會(huì)報(bào)錯(cuò)、
2.利用string函數(shù)來轉(zhuǎn)換類型
string函數(shù)將null犯戏,undefined轉(zhuǎn)為字符串類型不會(huì)報(bào)錯(cuò);、
var val =String(a);將a的類型直接轉(zhuǎn)為字符串類型饲漾;
調(diào)用string原理:
對(duì)于number、Boolean用的是to.String原理缕溉;
對(duì)undefined和null底層直接轉(zhuǎn)為undefined考传、null;
從用戶輸入的字符類型都是字符串
把數(shù)據(jù)類型轉(zhuǎn)為number(字符串類型)
可以直接利用number( )把值轉(zhuǎn)為number類型;
a=number(b),將b轉(zhuǎn)為number類型证鸥;
當(dāng)要轉(zhuǎn)換值為false僚楞、null、空字符串("")枉层、空格字符串("? ")泉褐、轉(zhuǎn)為number類型結(jié)果都是0;
當(dāng)值為true的時(shí)候轉(zhuǎn)為number類型結(jié)果是1鸟蜡;
當(dāng)值不是一個(gè)純數(shù)字的時(shí)候或者為undefined的時(shí)候轉(zhuǎn)為number類型結(jié)果是NaN膜赃;
注意"011"代表的是字符串所以轉(zhuǎn)為number的結(jié)果是11;而011表示的是八進(jìn)制轉(zhuǎn)轉(zhuǎn)為number的結(jié)果是9揉忘;
把數(shù)據(jù)類型轉(zhuǎn)為parseInt();功能是:把一個(gè)值轉(zhuǎn)換成整數(shù)(字符串類型)
跟number類型的區(qū)別就是把null和boonean類型轉(zhuǎn)換結(jié)果都是NaN;
把數(shù)據(jù)類型轉(zhuǎn)為parseFloat();功能是:把一個(gè)值轉(zhuǎn)換成小數(shù)
parseFloat()和parseInt()一般是對(duì)于字符串來使用的
Boolean();//把一個(gè)值轉(zhuǎn)換成布爾值
總結(jié):
Boolean轉(zhuǎn)換 非0的數(shù)字都是true ,0為false 非空的字符串都是true,空字符串都是false null,undefined,NaN都是false 所有的引用數(shù)據(jù)類型都是true;
隱匿類型轉(zhuǎn)換
字符串隱匿類型轉(zhuǎn)換
所有類型和字符串相加都會(huì)被自動(dòng)轉(zhuǎn)為字符串類型跳座,可利用這個(gè)特性把數(shù)據(jù)類型轉(zhuǎn)為字符串類型;
如 1+" "="1"他會(huì)自動(dòng)將1轉(zhuǎn)為字符串
常用方法:
b="a"+1;
b=" "+1;
console.log("b="+b)
都可將b轉(zhuǎn)為字符串
數(shù)字隱匿類型轉(zhuǎn)換
所有非number類型和number相減泣矛、相乘疲眷、相除都會(huì)將非number類型轉(zhuǎn)為number類型再進(jìn)行計(jì)算;
常用:
b="b"-0? b=1*"b"? b="b"/1都可將b轉(zhuǎn)為number再進(jìn)行計(jì)算
布爾隱匿類型轉(zhuǎn)換
對(duì)任意值饶唷狂丝!(非)的時(shí)候都會(huì)先將值轉(zhuǎn)為Boolean再進(jìn)行非計(jì)算;
所以可用? ? !几颜!b? ? 將b 轉(zhuǎn)為布爾類型倍试;b的值不變;
當(dāng)進(jìn)行邏輯運(yùn)算時(shí)候都會(huì)將類型轉(zhuǎn)為Boolean進(jìn)行判斷