數(shù)據(jù)類型轉(zhuǎn)換

強制類型轉(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進行判斷

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容