Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍

  下面就来详细说一说 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();//会报错