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 相关文章推荐
JS 事件绑定函数代码
Apr 28 Javascript
JavaScript 模拟类机制及私有变量的方法及思路
Jul 10 Javascript
jQuery的ready方法详解
Nov 27 Javascript
jQuery.trim() 函数及trim()用法详解
Oct 26 Javascript
微信小程序 swiper组件详解及实例代码
Oct 25 Javascript
JS实现颜色的10进制转化成rgba格式的方法
Sep 04 Javascript
vue.js实现只弹一次弹框
Jan 29 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
Jul 26 Javascript
vue项目中使用Svg的方法
Oct 24 Javascript
vuejs数据超出单行显示更多,点击展开剩余数据实例
May 05 Javascript
element-ui上传一张图片后隐藏上传按钮功能
May 22 Javascript
Vue Extends 扩展选项用法完整实例
Sep 17 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
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
php下防止单引号,双引号在接受页面转义的设置方法
2008/09/25 PHP
PHP中include()与require()的区别说明
2010/03/10 PHP
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
php实现将数组转换为XML的方法
2015/03/09 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
jquery 最简单易用的表单验证插件
2010/02/27 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
bootstrap datetimepicker日期插件使用方法
2017/01/13 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
JS实现小球的弹性碰撞效果
2017/11/11 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
layui 设置table 行的高度方法
2018/08/17 Javascript
vue组件 keep-alive 和 transition 使用详解
2019/10/11 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
Python实现从百度API获取天气的方法
2015/03/11 Python
Python解析nginx日志文件
2015/05/11 Python
python脚本设置系统时间的两种方法
2016/02/21 Python
Python 单元测试(unittest)的使用小结
2018/11/14 Python
python实现多进程通信实例分析
2019/09/01 Python
具有防紫外线功能的高性能钓鱼服装:Hook&Tackle
2018/08/16 全球购物
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
求职简历中的自我评价分享
2013/12/08 职场文书
国际金融专业自荐信
2014/07/05 职场文书
党建目标管理责任书
2014/07/25 职场文书
聘用合同范本
2015/09/21 职场文书
2016年综治和平安建设宣传月活动总结
2016/04/01 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
Windows11里微软已经将驱动程序安装位置A盘删除
2021/11/21 数码科技