Javascript Boolean、Nnumber、String 強(qiáng)制類型轉(zhuǎn)換的區(qū)別詳細(xì)介紹
更新時(shí)間:2012年12月13日 16:26:43 作者:
我們知道 Boolean(value) 是把值轉(zhuǎn)換成Boolean類型,Nnumber(value) 是把值轉(zhuǎn)換成數(shù)字(整型或浮點(diǎn)數(shù)),而 String(value) 是把值轉(zhuǎn)換成字符串,需要的朋友可以了解下
下面就來詳細(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ò)
我們知道 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。
例如:
復(fù)制代碼 代碼如下:
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é)果:
復(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(123) //返回123
最后來分析String,String可以把所有類型的數(shù)據(jù)轉(zhuǎn)換成字符串,例如:String(false)的結(jié)果為”false”,String(1)的結(jié)果為”1″。它和toString方法有些不同,區(qū)別如下:
復(fù)制代碼 代碼如下:
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ò)
您可能感興趣的文章:
- 詳解JavaScript中的強(qiáng)制類型轉(zhuǎn)換和自動(dòng)類型轉(zhuǎn)換
- JS中強(qiáng)制類型轉(zhuǎn)換的實(shí)現(xiàn)
- 重學(xué)JS之顯示強(qiáng)制類型轉(zhuǎn)換詳解
- JavaScript強(qiáng)制類型轉(zhuǎn)換和隱式類型轉(zhuǎn)換操作示例
- 詳解JavaScript中的強(qiáng)制類型轉(zhuǎn)換
- JS在if中的強(qiáng)制類型轉(zhuǎn)換方式
- Javascript 強(qiáng)制類型轉(zhuǎn)換函數(shù)
- 深入理解JavaScript強(qiáng)制類型轉(zhuǎn)換
相關(guān)文章
JavaScript的instanceof運(yùn)算符學(xué)習(xí)教程
instanceof運(yùn)算符可以用來判斷某個(gè)構(gòu)造函數(shù)的prototype屬性所指向的對象是否存在于另外一個(gè)要檢測對象的原型鏈上,這里我們就來看一下JavaScript的instanceof運(yùn)算符學(xué)習(xí)教程2016-06-06
實(shí)現(xiàn)JavaScript的組成----BOM和DOM詳解
下面小編就為大家?guī)硪黄獙?shí)現(xiàn)JavaScript的組成----BOM和DOM詳解。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過來看看吧2016-05-05
javascript中attribute和property的區(qū)別詳解
這篇文章主要介紹了javascript中attribute和property的區(qū)別詳解,attribute和property對新手來說,特別容易混淆概念,本文就清晰的講解了它們的區(qū)別,需要的朋友可以參考下2014-06-06
設(shè)計(jì)模式中的facade外觀模式在JavaScript開發(fā)中的運(yùn)用
外觀模式通過引入一個(gè)外觀角色來簡化客戶端與子系統(tǒng)之間的交互,為復(fù)雜的子系統(tǒng)調(diào)用提供一個(gè)統(tǒng)一的入口,降低子系統(tǒng)與客戶端的耦合,接下來就來看設(shè)計(jì)模式中的facade外觀模式在JavaScript開發(fā)中的運(yùn)用2016-05-05
詳細(xì)講解JS節(jié)點(diǎn)知識(shí)
最近發(fā)現(xiàn)DOMDocument對象很重要,還有XMLHTTP也很重要2010-01-01
總結(jié)JavaScript設(shè)計(jì)模式編程中的享元模式使用
享元模式最適合于解決因創(chuàng)建大量類似對象而累及性能的問題,本文將來總結(jié)JavaScript設(shè)計(jì)模式編程中的享元模式使用,包括在DOM操作時(shí)的利用示例:2016-05-05
JavaScript高級程序設(shè)計(jì)(第3版)學(xué)習(xí)筆記 概述
在JavaScript面世之初,沒有人會(huì)想到它會(huì)被應(yīng)用的如此廣泛,也遠(yuǎn)比一般人想象中的要復(fù)雜強(qiáng)大的多,在我自己學(xué)習(xí)的過程中,曾經(jīng)有過多次震撼2012-10-10

