JavaScript一元正号运算符示例代码


Posted in Javascript onJune 30, 2019

本文适合JavaScript初学者。

一元正号介绍

一元正号运算符(+)位于其操作数前面,计算其操作数的数值,如果操作数不是一个数值,会尝试将其转换成一个数值。 尽管一元负号也能转换非数值类型,但是一元正号是转换其他对象到数值的最快方法,也是最推荐的做法,因为它不会对数值执行任何多余操作。

转换字符串

一元正号可以用于转换数值字符串为数字,比如如下代码:

+ "123" // 123
+ "12.3" // 12.3

也可以转换二进制、16进制数值、自然底数的字符串:

+ "0x11" // 17
+ "0b11" // 3
+ "1e10" // 10000000000

看起来 和parseFloat功能类似,但是parseFloat支持字符串后面部分不为数字的情况,一元正号却不行,比如:

parseFloat("1px") // 1
+ "1px" // NaN

如果是空字符串或者多个空格组成的字符串,一元正号会转换为0,parseFloat 结果为NaN

+ ' ' // 0
parseFloat(' ') // NaN

负数形式字符串也可以转换成数值,但是对于十六进制 二进制不适用,对于自然底数适用(parseFloat 都适用):

+'-123' // 123
+ "-0x11" // NaN
+ "-0b11" // NaN
+ "-1e10" // -10000000000

转换日期对象

一元正号转换日期对象为数字,得到时间戳,比如如下代码:

+ new Date(); // 1561020101609

相当于如下代码:

new Date().getTime(); // 1561020101609

转换null、undefined、NaN

一元正号会把null转换为0,undefined 转换为NaN。一元正号施加于NaN,结果还是NaN。代码如下:

+ null // 0
+ undefined // NaN
+ NaN // NaN

转换布尔值
一元正号会把true 转换为1,false转换为0:

+ true;// 1
+ false;// 0

转换数组

一元正号会把空数组[],转换为0。如果数组只有一个元素,切第一个元素为数字或者字符串,会对第一个元素进行转换,如果有多个元素,返回NaN,代码如下:

+ []// 0
+ ['123'] // 123
+ [true] // NaN
+ [1,2] // NaN

总结

一元正号运算符对于数字字符串和日期的转换比较适用。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
用js写了一个类似php的print_r输出换行功能
Feb 18 Javascript
jquery 显示*天*时*分*秒实现时间计时器
May 07 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
May 23 Javascript
js自定义鼠标右键的实现原理及源码
Jun 23 Javascript
javascript二维数组转置实例
Jan 22 Javascript
angularJS 中input示例分享
Feb 09 Javascript
vue+axios新手实践实现登陆的示例代码
Jun 06 Javascript
nuxt.js 缓存实践
Jun 25 Javascript
前端axios下载excel文件(二进制)的处理方法
Jul 31 Javascript
webpack 静态资源集中输出的方法示例
Nov 09 Javascript
15分钟上手vue3.0(小结)
May 20 Javascript
Vue-router编程式导航的两种实现代码
Mar 04 Vue.js
重学JS之显示强制类型转换详解
Jun 30 #Javascript
JavaScript判断浏览器运行环境的详细方法
Jun 30 #Javascript
微信小程序如何自定义table组件
Jun 29 #Javascript
微信小程序如何调用图片接口API并居中显示
Jun 29 #Javascript
微信小程序如何调用json数据接口并解析
Jun 29 #Javascript
pm2启动ssr失败的解决方法
Jun 29 #Javascript
localstorage实现带过期时间的缓存功能
Jun 28 #Javascript
You might like
在PHP中设置、使用、删除Cookie的解决方法
2013/05/06 PHP
php类的自动加载操作实例详解
2016/09/28 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
Laravel服务容器绑定的几种方法总结
2020/06/14 PHP
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
jqGrid随窗口大小变化自适应大小的示例代码
2013/12/28 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
解决vue里碰到 $refs 的问题的方法
2017/07/13 Javascript
微信小程序视图容器(swiper)组件创建轮播图
2020/06/19 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
Python素数检测的方法
2015/05/11 Python
基于并发服务器几种实现方法(总结)
2017/12/29 Python
django框架自定义用户表操作示例
2018/08/07 Python
Django使用Jinja2模板引擎的示例代码
2019/08/09 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
五种Python转义表示法
2020/11/27 Python
CSS3制作Dropdown下拉菜单的方法
2015/07/18 HTML / CSS
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
工程造价专业求职信
2014/07/17 职场文书
初中学校对照检查材料
2014/08/19 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
房屋维修协议书范本
2014/09/25 职场文书
人口与计划生育责任书
2015/05/09 职场文书
2016见义勇为事迹材料汇总
2016/03/01 职场文书
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
2022/04/19 Java/Android