Posted in Javascript onDecember 13, 2012
下面就来详细说一说 Javascript 中 Boolean、Nnumber、String 强制类型转换的区别。
我们知道 Boolean(value) 是把值转换成Boolean类型,Nnumber(value) 是把值转换成数字(整型或浮点数),而 String(value) 是把值转换成字符串。
先来分析下Boolean,Boolean在转换值为“至少有一字符的字符串”、“非0的数字”或“对象”的情况下返回true;在转换值为“空字符串”、“数字0”、“undefined”,“null”的情况下返回false。
例如:
var b1 = Boolean("");//返回false,空字符串 var b2 = Boolean("s");//返回true,非空字符串 var b3 = Boolean(0);//返回false,数字0 var b4 = Boolean(1);//返回true,非0数字 var b5 = Boolean(-1);//返回true,非0数字 var b6 = Boolean(null);//返回false var b7 = Boolean(undefined);//返回false var b8 = Boolean(new Object());//返回true,对象
接下来分析Number,Number与parseInt和parseFloat类似,区别在于Number转换的是整个值,而parseInt和parseFloat则可以只转换开头的数字部分。
例如:
Number(“1.2.3″),Number(“123abc”)会返回NaN,而parseInt(“1.2.3″)返回1、parseInt(“123abc”)返回123、parseFloat(“1.2.3″)返回1.2、ParseFloat(“123abc”)返回123。
Number会先判断要转换的值能否被完整的转换,然后再判断是调用parseInt或parseFloat。
下面列了一些值调用Number后的结果:
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可以把所有类型的数据转换成字符串,例如:String(false)的结果为”false”,String(1)的结果为”1″。它和toString方法有些不同,区别如下:
var s1 = null; var s2 = String(t1);//s2的值是 "null" var s3 = s1.toString();//会报错 var s4; var s5 = String(t4);//s5的值是 "undefined" var s6 = t4.toString();//会报错
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@