Javascript 强制类型转换函数
2. Nnumber(value):把值轉(zhuǎn)換成數(shù)字(整型或浮點(diǎn)數(shù));
3. String(value):把值轉(zhuǎn)換成字符串。
我們先來(lái)看Boolean():在要轉(zhuǎn)換的值為“至少有一字符的字符串”、“非0的數(shù)字”或“對(duì)象”,那么Boolean()將返回true,如果要轉(zhuǎn)換的值為“空字符串”、“數(shù)字0”、“undefined”,“null”這些話(huà),那么Boolean()會(huì)返回false。你可以用以下代碼來(lái)測(cè)試
復(fù)制代碼 代碼如下:
var t1 = Boolean("");//返回false,空字符串
var t2 = Boolean("s");//返回true,非空字符串
var t3 = Boolean(0);//返回false,數(shù)字0
var t3 = Boolean(1),t4 = Boolean(-1);//返回true,非0數(shù)字
var t5 = Boolean(null),t6 = Boolean(undefined);//返回false
var t7 = Boolean(new Object());//返回true,對(duì)象
再來(lái)看看Number():Number()與parseInt()和parseFloat()類(lèi)似,它們區(qū)別在于Number()轉(zhuǎn)換是整個(gè)值,而parseInt()和parseFloat()則可以只轉(zhuǎn)換開(kāi)頭的數(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():這個(gè)以比較簡(jiǎn)單了,它可以把所有類(lèi)型的數(shù)據(jù)轉(zhuǎn)換成字符串,如:String(false)---"false"、String(1)---"1"。它和toString()方法有些不同,區(qū)別在于:
復(fù)制代碼 代碼如下:
var t1 = null;
var t2 = String(t1);//t2的值 "null"
var t3 = t1.toString();//這里會(huì)報(bào)錯(cuò)
var t4;
var t5 = String(t4);//t5的值 "undefined"
var t6 = t4.toString();//這里會(huì)報(bào)錯(cuò)
在這篇文章中,我們將介紹一下Javascript的強(qiáng)制類(lèi)型轉(zhuǎn)換。使用強(qiáng)制類(lèi)型轉(zhuǎn)換可以訪(fǎng)問(wèn)特定的值,即使它是另一種類(lèi)型的。
Javascript 中可用的 3 種強(qiáng)制類(lèi)型轉(zhuǎn)換如下:
- Boolean(value) - 把給定的值轉(zhuǎn)換成 Boolean 型;
- Number(value) - 把給定的值轉(zhuǎn)換成數(shù)字(可以是整數(shù)或浮點(diǎn)數(shù));
- String(value) - 把給定的值轉(zhuǎn)換成字符串;
用這三個(gè)函數(shù)之一轉(zhuǎn)換值,將創(chuàng)建一個(gè)新值,存放由原始值直接轉(zhuǎn)換成的值。這會(huì)造成意想不到的后果。
Boolean() 函數(shù)
當(dāng)要轉(zhuǎn)換的值是至少有一個(gè)字符的字符串、非 0 數(shù)字或?qū)ο髸r(shí),Boolean() 函數(shù)將返回 true。如果該值是空字符串、數(shù)字 0、undefined 或 null,它將返回 false。
可以用下面的代碼測(cè)試 Boolean 型的強(qiáng)制類(lèi)型轉(zhuǎn)換:
var b1 = Boolean(""); //false - 空字符串 var b2 = Boolean("hello"); //true - 非空字符串 var b1 = Boolean(50); //true - 非零數(shù)字 var b1 = Boolean(null); //false - null var b1 = Boolean(0); //false - 零 var b1 = Boolean(new object()); //true - 對(duì)象Number() 函數(shù)
Number() 函數(shù)的強(qiáng)制類(lèi)型轉(zhuǎn)換與 parseInt() 和 parseFloat() 方法的處理方式相似,只是它轉(zhuǎn)換的是整個(gè)值,而不是部分值。
還記得嗎,parseInt() 和 parseFloat() 方法只轉(zhuǎn)換第一個(gè)無(wú)效字符之前的字符串,因此 "1.2.3" 將分別被轉(zhuǎn)換為 "1" 和 "1.2"。
用 Number() 進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換,"1.2.3" 將返回 NaN,因?yàn)檎麄€(gè)字符串值不能轉(zhuǎn)換成數(shù)字。如果字符串值能被完整地轉(zhuǎn)換,Number() 將判斷是調(diào)用 parseInt() 方法還是 parseFloat() 方法。
下表說(shuō)明了對(duì)不同的值調(diào)用 Number() 方法會(huì)發(fā)生的情況:
| 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(50) | 50 |
String() 函數(shù)
最后一種強(qiáng)制類(lèi)型轉(zhuǎn)換方法 String() 是最簡(jiǎn)單的,因?yàn)樗砂讶魏沃缔D(zhuǎn)換成字符串。
要執(zhí)行這種強(qiáng)制類(lèi)型轉(zhuǎn)換,只需要調(diào)用作為參數(shù)傳遞進(jìn)來(lái)的值的 toString() 方法,即把 12 轉(zhuǎn)換成 "12",把 true 轉(zhuǎn)換成 "true",把 false 轉(zhuǎn)換成 "false",以此類(lèi)推。
強(qiáng)制轉(zhuǎn)換成字符串和調(diào)用 toString() 方法的唯一不同之處在于,對(duì) null 和 undefined 值強(qiáng)制類(lèi)型轉(zhuǎn)換可以生成字符串而不引發(fā)錯(cuò)誤:
var s1 = String(null); //"null" var oNull = null; var s2 = oNull.toString(); //會(huì)引發(fā)錯(cuò)誤在處理Javascript這樣的弱類(lèi)型語(yǔ)言時(shí),強(qiáng)制類(lèi)型轉(zhuǎn)換非常有用,不過(guò)應(yīng)該確保使用值的正確。
總結(jié)
以上是生活随笔為你收集整理的Javascript 强制类型转换函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: js 隐式转换
- 下一篇: JavaScript表达式--掌握最全的