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

 更新时间:2012年12月13日 16:26:43   作者:  
我们知道 Boolean(value) 是把值转换成Boolean类型,Nnumber(value) 是把值转换成数字(整型或浮点数),而 String(value) 是把值转换成字符串,需要的朋友可以了解下
下面就来详细说一说 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();//会报错

相关文章

  • JS中处理时间之setUTCMinutes()方法的使用

    JS中处理时间之setUTCMinutes()方法的使用

    这篇文章主要介绍了JavaScript中处理时间之setUTCMinutes()方法的使用,是JavaScript入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • javascript Event对象详解及使用示例

    javascript Event对象详解及使用示例

    Event代表事件状态,如事件发生的元素,键盘状态,鼠标位置和鼠标按钮状态,event对象只在事件发生的过程中才有效,本文整理了一些,喜欢的朋友可以学习下
    2013-11-11
  • 有关JavaScript中call()和apply() 的一些理解

    有关JavaScript中call()和apply() 的一些理解

    下面小编就为大家带来一篇有关JavaScript中call()和apply() 的一些理解。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • js导航菜单(自写)简单大方

    js导航菜单(自写)简单大方

    一个简单的多级下拉菜单菜单但是由于业务和样式上的要求,为了简洁找了好多都不适合于是自己写了一个,晒出来与大家分享,感兴趣的朋友可以参考下哈,希望可以帮助到你
    2013-03-03
  • JavaScript 学习历程和心得分享

    JavaScript 学习历程和心得分享

    在过去,JavaScript只是被用来做一些简单的网页效果,比如表单验证、浮动广告等,所以那时候JavaScript并没有受到重视。
    2010-12-12
  • 实例分析javascript中的call()和apply()方法

    实例分析javascript中的call()和apply()方法

    因项目需求去研究了下javascript中的call和apply方法,去百度看了几篇介绍JS中call和apply的文章,总觉得不是很好懂,这里写下我自己的理解,供网友们参考。
    2014-11-11
  • Javascript中的变量使用说明

    Javascript中的变量使用说明

    使用过javascript的朋友都知道,在javascript中,变量的使用是个比较头疼的问题,经常会产生 些比较匪夷所思的结果。究其原因,大多是对javascript的变量相关知识了解得不够透彻。
    2010-05-05
  • img onload事件绑定各浏览器均可执行

    img onload事件绑定各浏览器均可执行

    在需要对img进行onload事件绑定的时候,一般大家都会想到用常规的方法进行事件绑定此时大家会发现alert(1)并没有执行,这是什么原因呢?特别是在ie和ff浏览器下这是为什么呢,本文将详细为您解答
    2012-12-12
  • JS同步、异步、延迟加载的方法

    JS同步、异步、延迟加载的方法

    本篇文章讲述了JS同步、异步、延迟加载的方法,具有很好的参考价值,希望对大家的学习有所帮助
    2018-05-05
  • JS创建类和对象的两种不同方式

    JS创建类和对象的两种不同方式

    定义了一个新的函数, 你实际上声明了一个新的类, 而这个函数本身就相当于类的构造函数,下面为大家展示创建一个新类的两种不同方式
    2014-08-08

最新评论