javascript显式类型转换实例分析


Posted in Javascript onApril 25, 2015

本文实例讲述了javascript显式类型转换的方法。分享给大家供大家参考。具体分析如下:

尽管js可以做许多自动类型转换,但某些时候仍然需要做显示类型转换或为了代码逻辑清晰易读而做显示类型转换。

做显示类型转换最简单的方法就是用Boolean()、Number()、String()或Object()函数:

Number("3") //3
String(false)  //"false"
false.toString()//同上
Boolean([]) //true
Object(3)  //new Number(3)

js中的某些运算符会做隐式类型转换,比如:
若+运算符一个操作数是字符串,则它会将另一个操作数转换为字符串;
一元+运算符将其操作数转换为数字;
一元!运算符将操作数转换为布尔值并取反;
代码中经常可以看到如下类型转换的用法:

x+"" //等价于String(x)
+x //等价于Number(x)
x-0 //同上
!!x //等价于Boolean(x),是双叹号哦

Number类定义的toString()方法可以按转换基数(radix)将数字转换为其它进制数的字符串表示(2-36之间):

var n =11;
bin_str = n.toString(2);
oct_str = "0" + n.toString(8);
hex_str = "0x" + n.toString(16);

Number类还为数字到字符串的类型转换场景定义了另外3个方法:
toFixed()根据小数点后的指定位数将数字转换为字符串,它从不使用指数记数法。

11.113344.toFixed(5) //"11.11334"

toExponential()使用指数记数法将数字转换为指数形式的字符串,其中小数点前只有一位,小数点后位数由参数指定:

11.113359.toExponential(5) //"1.11134e+1"

toPrecision()根据指定的有效数字位数将数字转换为字符串,如果有效数字位数小于数字整数部分的位数则转换为指数形式。
以上3个方法都会适当的进行四舍五入或填充0.

需要说明的是前面提到的Number()函数只能基于十进制数进行转换,而且不能出现非法字符。我们可以使用全局函数(不属于任何类的方法)parseInt或parseFloat函数来进行字符串到数字的转换;

parseInt()只解析整数,而parseFloat()可以解析整数和浮点数。

如果字符串前缀为”0x”或者”0X”,parseInt()将其解释为16进制数;parseInt和parseFloat都会跳过任意数量的前导空格,且尽可能解析更多的数值字符;如果第一个非空格字符是非法数字,则返回NaN。

parseInt可以接收第二个可选参数,该参数指定数字转换的基数,取值范围是2-36.

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
使用JavaScript switch case 另类写法
Mar 14 Javascript
JQuery的一些小应用收集
Mar 27 Javascript
分享20款好玩的jQuery游戏
Apr 17 Javascript
js循环改变div颜色具体方法
Jun 25 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
Jan 23 Javascript
javascript产生随机数方法汇总
Jan 25 Javascript
对象转换为原始值的实现方法
Jun 06 Javascript
Bootstrap Img 图片样式(推荐)
Dec 13 Javascript
vue router自动判断左右翻页转场动画效果
Oct 10 Javascript
vue2.0的虚拟DOM渲染思路分析
Aug 09 Javascript
在vue中获取wangeditor的html和text的操作
Oct 23 Javascript
JavaScript使用canvas绘制坐标和线
Apr 28 Javascript
javascript原始值和对象引用实例分析
Apr 25 #Javascript
JavaScript分页功能的实现方法
Apr 25 #Javascript
JavaScript实现图片DIV竖向滑动的方法
Apr 25 #Javascript
JavaScript实现梯形乘法表的方法
Apr 25 #Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
Apr 25 #Javascript
JavaScript获取DOM元素的11种方法总结
Apr 25 #Javascript
在线所见即所得HTML编辑器的实现原理浅析
Apr 25 #Javascript
You might like
php 分库分表hash算法
2009/11/12 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
wampserver改变默认网站目录的办法
2015/08/05 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
2016/09/23 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
原生JS封装animate运动框架的实例
2017/10/12 Javascript
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
Vue.js 实现数据展示全部和收起功能
2018/09/05 Javascript
JS实现的对象去重功能示例
2019/06/04 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
python计算auc指标实例
2017/07/13 Python
Python+OpenCV感兴趣区域ROI提取方法
2019/01/10 Python
详解python读取image
2019/04/03 Python
python2使用bs4爬取腾讯社招过程解析
2019/08/14 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
通过实例解析python创建进程常用方法
2020/06/19 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
2020/08/07 Python
python Tornado框架的使用示例
2020/10/19 Python
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
迟到检讨书900字
2014/01/14 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书
七年级写作指导之游记作文
2019/10/07 职场文书
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL
vue修饰符.capture和.self的区别
2022/04/22 Vue.js