下面就來詳細(xì)說一說 Javascript 中 Boolean、Nnumber、String 強(qiáng)制類型轉(zhuǎn)換的區(qū)別。
我們知道 Boolean(value) 是把值轉(zhuǎn)換成Boolean類型,Nnumber(value) 是把值轉(zhuǎn)換成數(shù)字(整型或浮點(diǎn)數(shù)),而 String(value) 是把值轉(zhuǎn)換成字符串。
先來分析下Boolean,Boolean在轉(zhuǎn)換值為“至少有一字符的字符串”、“非0的數(shù)字”或“對象”的情況下返回true;在轉(zhuǎn)換值為“空字符串”、“數(shù)字0”、“undefined”,“null”的情況下返回false。
例如:
代碼如下:
var b1 = Boolean("");//返回false,空字符串
var b2 = Boolean("s");//返回true,非空字符串
var b3 = Boolean(0);//返回false,數(shù)字0
var b4 = Boolean(1);//返回true,非0數(shù)字
var b5 = Boolean(-1);//返回true,非0數(shù)字
var b6 = Boolean(null);//返回false
var b7 = Boolean(undefined);//返回false
var b8 = Boolean(new Object());//返回true,對象
接下來分析Number,Number與parseInt和parseFloat類似,區(qū)別在于Number轉(zhuǎn)換的是整個(gè)值,而parseInt和parseFloat則可以只轉(zhuǎn)換開頭的數(shù)字部分。
例如:
Number(“1.2.3″),Number(“123abc”)會(huì)返回NaN,而parseInt(“1.2.3″)返回1、parseInt(“123abc”)返回123、parseFloat(“1.2.3″)返回1.2、ParseFloat(“123abc”)返回123。
Number會(huì)先判斷要轉(zhuǎn)換的值能否被完整的轉(zhuǎn)換,然后再判斷是調(diào)用parseInt或parseFloat。
下面列了一些值調(diào)用Number后的結(jié)果:
代碼如下:
Number(false) //返回0
Number(true) //返回1
Number(undefined) //返回NaN
Number(null) //返回0
Number("1.2") //返回1.2
Number("12") //返回12
Number("1.2.3") //返回NaN
Number(new Object()) //返回NaN
Number(123) //返回123
最后來分析String,String可以把所有類型的數(shù)據(jù)轉(zhuǎn)換成字符串,例如:String(false)的結(jié)果為”false”,String(1)的結(jié)果為”1″。它和toString方法有些不同,區(qū)別如下:
代碼如下:
var s1 = null;
var s2 = String(t1);//s2的值是 "null"
var s3 = s1.toString();//會(huì)報(bào)錯(cuò)
var s4;
var s5 = String(t4);//s5的值是 "undefined"
var s6 = t4.toString();//會(huì)報(bào)錯(cuò)
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com