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 相关文章推荐
浏览器脚本兼容 文本框中,回车键触发事件的兼容
Jun 21 Javascript
查看源码的工具 学习jQuery源码不错的工具
Dec 26 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
May 08 Javascript
JS写的贪吃蛇游戏(个人练习)
Jul 08 Javascript
jquery mobile changepage的三种传参方法介绍
Sep 13 Javascript
javascript判断复选框是否选中的方法
Oct 16 Javascript
基于javascript实现tab切换特效
Mar 29 Javascript
详解微信小程序开发之城市选择器 城市切换
Jan 17 Javascript
微信小程序开发教程之增加mixin扩展
Aug 09 Javascript
JavaScript中错误正确处理方式小结你用对了吗
Oct 10 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
Sep 20 Javascript
vue中对象数组去重的实现
Feb 06 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中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
2011/08/23 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
用JavaScript隐藏控件的方法
2009/09/21 Javascript
JQuery中html()方法使用不当带来的陷阱
2011/04/07 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
2012/02/03 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
2014/05/05 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
js 提交form表单和设置form表单请求路径的实现方法
2016/10/25 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
详解Jest结合Vue-test-utils使用的初步实践
2019/06/27 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
python数值基础知识浅析
2019/11/19 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
澳大利亚领先的在线药房:Pharmacy Online(有中文站)
2020/02/22 全球购物
教师开学感言
2014/02/14 职场文书
高中军训感言500字
2014/02/24 职场文书
党员公开承诺践诺书
2014/03/25 职场文书
团委书记的竞聘演讲稿
2014/04/24 职场文书
工会2014法制宣传日活动总结
2014/11/01 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
使用pytorch实现线性回归
2021/04/11 Python
mysql配置SSL证书登录的实现
2021/09/04 MySQL
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python