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


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 相关文章推荐
javascript整除实现代码
Nov 23 Javascript
JavaScript给url网址进行encode编码的方法
Mar 18 Javascript
JavaScript编写推箱子游戏
Jul 07 Javascript
纯javascript实现自动发送邮件
Oct 21 Javascript
jQuery如何使用自动触发事件trigger
Nov 29 Javascript
jquery 禁止鼠标右键并监听右键事件
Apr 27 jQuery
JavaScript实现自动跳转文本功能
May 25 Javascript
vue中v-model的应用及使用详解
Jun 27 Javascript
iview同时验证多个表单问题总结
Sep 29 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
Mar 21 Javascript
JavaScript队列结构Queue实现过程解析
Mar 07 Javascript
JSON stringify方法原理及实例解析
Oct 23 Javascript
js onkeypress与onkeydown 事件区别详细说明
Dec 13 #Javascript
javascript 文件的同步加载与异步加载实现原理
Dec 13 #Javascript
javaScript复制功能调用实现方案
Dec 13 #Javascript
js遍历td tr等html元素
Dec 13 #Javascript
js关闭模态窗口刷新父页面或跳转页面
Dec 13 #Javascript
HTML复选框和单选框 checkbox和radio事件介绍
Dec 12 #Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
Dec 12 #Javascript
You might like
php 高效率写法 推荐
2010/02/21 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
PHP生成唯一ID之SnowFlake算法
2016/12/17 PHP
PHP实现Session入库/存入redis的方法
2017/05/04 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
php+ajax 文件上传代码实例
2019/03/18 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
2014/02/07 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
javascript 10进制和62进制的相互转换
2014/07/31 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
2017/02/21 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
详解Angularjs 自定义指令中的数据绑定
2018/07/19 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
JS监听组合按键思路及实现过程
2020/04/17 Javascript
基于javascript的无缝滚动动画实现2
2020/08/07 Javascript
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
[42:32]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.27
2020/12/01 DOTA
python实现ping的方法
2015/07/06 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
python实现屏保程序(适用于背单词)
2019/07/30 Python
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
2021/03/05 HTML / CSS
html5中JavaScript removeChild 删除所有节点
2014/05/16 HTML / CSS
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
质检员岗位职责
2013/12/17 职场文书
致铅球运动员广播稿精选
2014/01/12 职场文书
酒会邀请函
2015/01/31 职场文书
建筑工地资料员岗位职责
2015/04/13 职场文书
在HTML中引入CSS的几种方式介绍
2021/12/06 HTML / CSS
如何使用SQL Server语句创建表
2022/04/12 SQL Server