強制類型轉(zhuǎn)換
把數(shù)據(jù)類型轉(zhuǎn)為string(字符串類型)
1.利用var val = num.toString(a);
用點的方法調(diào)用執(zhí)行,將num轉(zhuǎn)為字符串類型
var val = num.toString(a);a可以表示進制;當a=2;此時會將num這個值通過 調(diào)用 toString方法來轉(zhuǎn)換成2進制的數(shù)
注意:這個方法不能把null和undefined類型轉(zhuǎn)為字符串,會報錯、
2.利用string函數(shù)來轉(zhuǎn)換類型
string函數(shù)將null,undefined轉(zhuǎn)為字符串類型不會報錯;、
var val =String(a);將a的類型直接轉(zhuǎn)為字符串類型;
調(diào)用string原理:
對于number、Boolean用的是to.String原理;
對undefined和null底層直接轉(zhuǎn)為undefined、null;
從用戶輸入的字符類型都是字符串
把數(shù)據(jù)類型轉(zhuǎn)為number(字符串類型)

可以直接利用number( )把值轉(zhuǎn)為number類型;
a=number(b),將b轉(zhuǎn)為number類型;
當要轉(zhuǎn)換值為false、null、空字符串("")、空格字符串("? ")、轉(zhuǎn)為number類型結(jié)果都是0;
當值為true的時候轉(zhuǎn)為number類型結(jié)果是1;
當值不是一個純數(shù)字的時候或者為undefined的時候轉(zhuǎn)為number類型結(jié)果是NaN;
注意"011"代表的是字符串所以轉(zhuǎn)為number的結(jié)果是11;而011表示的是八進制轉(zhuǎn)轉(zhuǎn)為number的結(jié)果是9;
把數(shù)據(jù)類型轉(zhuǎn)為parseInt();功能是:把一個值轉(zhuǎn)換成整數(shù)(字符串類型)

跟number類型的區(qū)別就是把null和boonean類型轉(zhuǎn)換結(jié)果都是NaN;
把數(shù)據(jù)類型轉(zhuǎn)為parseFloat();功能是:把一個值轉(zhuǎn)換成小數(shù)

parseFloat()和parseInt()一般是對于字符串來使用的
Boolean();//把一個值轉(zhuǎn)換成布爾值

總結(jié):
Boolean轉(zhuǎn)換 非0的數(shù)字都是true ,0為false 非空的字符串都是true,空字符串都是false null,undefined,NaN都是false 所有的引用數(shù)據(jù)類型都是true;
隱匿類型轉(zhuǎn)換
字符串隱匿類型轉(zhuǎn)換
所有類型和字符串相加都會被自動轉(zhuǎn)為字符串類型,可利用這個特性把數(shù)據(jù)類型轉(zhuǎn)為字符串類型;
如 1+" "="1"他會自動將1轉(zhuǎn)為字符串
常用方法:
b="a"+1;
b=" "+1;
console.log("b="+b)
都可將b轉(zhuǎn)為字符串
數(shù)字隱匿類型轉(zhuǎn)換
所有非number類型和number相減、相乘、相除都會將非number類型轉(zhuǎn)為number類型再進行計算;
常用:
b="b"-0? b=1*"b"? b="b"/1都可將b轉(zhuǎn)為number再進行計算
布爾隱匿類型轉(zhuǎn)換
對任意值??!(非)的時候都會先將值轉(zhuǎn)為Boolean再進行非計算;
所以可用? ? !!b? ? 將b 轉(zhuǎn)為布爾類型;b的值不變;
當進行邏輯運算時候都會將類型轉(zhuǎn)為Boolean進行判斷