资讯专栏INFORMATION COLUMN

JavaScript 一元正号运算符

chanjarster / 700人阅读

摘要:一元正号介绍一元正号运算符位于其操作数前面,计算其操作数的数值,如果操作数不是一个数值,会尝试将其转换成一个数值。一元正号施加于,结果还是。

本文适合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
总结

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/105152.html

相关文章

  • JavaScript 类型转换

    摘要:这样导致结果不一致,等解析语句为,对空对象强制转为数字类型,即为,将非空字符串转换为数字类型,结果为。综上,右边表达式转换为。 首先从一系列让JavaScript初学者抓狂的运算说起。 1 + {} {} + 1 [] + {} {} + [] [] + [] {} + {} 能全部答对上面的运算结果,不必浪费时间继续阅读本文了。如果对某一些的结果还不确定,请慢慢往下看。 上面列的所有...

    sydMobile 评论0 收藏0
  • 重新巩固JS(二)——JavaScript操作符与表达式

    摘要:重新巩固系列,都是比较基础的东西,可以进行查漏补缺,很快看完,这是第二篇。关系运算符用于比较操作符左右的操作数的大小。逻辑运算符主要通过与或非来判断一个表达式的值是否为。注意与和或操作具有短路计算效果。重新巩固JS系列,都是比较基础的东西,可以进行查漏补缺,很快看完,这是第二篇。 其他JS重新巩固系列: 重新巩固JS(一)——JavaScript基本类型 重新巩固JS(三)——JavaSc...

    DoINsiSt 评论0 收藏0
  • JS的{} + {}与{} + []的结果是什么?

    摘要:对于与的设计在中所设计的纯对象类型的与方法,它们的返回如下方法返回值对象本身。与三个强制转换函数,所对应的就是在标准中的三个内部运算转换的对照表。 在JS中的运算符共同的情况中,(+)符号是很常见的一种,它有以下的使用情况: 数字的加法运算,二元运算 字符串的连接运算,二元运算,最高优先 正号,一元运算,可延伸为强制转换其他类型的运算元为数字类型 当然,如果考虑多个符号一起使用时,...

    2json 评论0 收藏0
  • Java参考笔记之算符、表达式

    摘要:赋值运算符赋值运算符号描述赋值一元运算符一元运算符描述正号负号,否定算术运算符算术运算符描述加法减法乘法除法取模求余数关系运算符关系运算符描述大于小于大于等于小于等于等于不等于递增与递减运算符递增与递减运算符描述递增,变量值加递减, Java 赋值运算符 No. 赋值运算符号 描述 1 = 赋值 Java 一元运算符 No. 一元运算符 描述...

    fuchenxuan 评论0 收藏0

发表评论

0条评论

chanjarster

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<