JavaScript 一元正号运算符

本文适合JavaScript初学者。前端

一元正号介绍

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

转换字符串

一元正号能够用于转换数值字符串为数字,好比以下代码:数组

+ "123" // 123+ "12.3" // 12.3复制代码

也能够转换二进制、16进制数值、天然底数的字符串:bash

+ "0x11" // 17+ "0b11" // 3+ "1e10" // 10000000000复制代码

看起来 和parseFloat功能相似,可是parseFloat支持字符串后面部分不为数字的状况,一元正号却不行,好比:架构

parseFloat("1px") // 1+ "1px" // NaN复制代码

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

+ ' ' // 0parseFloat(' ') // NaN复制代码

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

+'-123' // 123+ "-0x11" // NaN+ "-0b11" // NaN+ "-1e10" // -10000000000复制代码

转换日期对象

一元正号转换日期对象为数字,获得时间戳,好比以下代码:code

+ new Date(); // 1561020101609复制代码

至关于以下代码:cdn

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复制代码

总结

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

欢迎关注公众号“ITman彪叔”。彪叔,拥有10多年开发经验,现任公司系统架构师、技术总监、技术培训师、职业规划师。熟悉Java、JavaScript。在计算机图形学、WebGL、前端可视化方面有深刻研究。对程序员思惟能力训练和培训、程序员职业规划和程序员理财投资有浓厚兴趣。

ITman彪叔公众号
ITman彪叔公众号
相关文章
相关标签/搜索