JavaScript 一元正号运算符

简介: 本文JavaScript 一元正号运算符,适合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


总结


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

相关文章
|
3天前
|
JavaScript 前端开发 开发者
混淆赋值运算符(=)和相等比较运算符(==, ===)(js的问题)
混淆赋值运算符(=)和相等比较运算符(==, ===)(js的问题)
10 0
|
3天前
|
存储 JavaScript 前端开发
【JavaScript技术专栏】JavaScript基础入门:变量、数据类型与运算符
【4月更文挑战第30天】本文介绍了JavaScript的基础知识,包括变量(var、let、const)、数据类型(Number、String、Boolean、Undefined、Null及Object、Array)和运算符(算术、赋值、比较、逻辑)。通过实例展示了如何声明变量、操作数据类型以及使用运算符执行数学和逻辑运算。了解这些基础知识对初学者至关重要,是进阶学习JavaScript的关键。
|
3天前
|
JavaScript 前端开发
JS中运算符的算术、赋值、+、比较(不同类型之间比较)、逻辑
JS中运算符的算术、赋值、+、比较(不同类型之间比较)、逻辑
9 1
|
3天前
|
JavaScript
js的一些运算符规则
js的一些运算符规则
13 1
|
3天前
|
JavaScript
js的比较运算符
js的比较运算符
15 1
|
3天前
|
JavaScript 前端开发
js的运算符
js的运算符
15 2
|
3天前
|
JavaScript 前端开发 数据安全/隐私保护
【专栏】JavaScript中的`==`和`===`运算符有重要区别,本文将从三个部分详细探讨
【4月更文挑战第29天】JavaScript中的`==`和`===`运算符有重要区别。`==`进行类型转换后比较,而`===`不转换类型,要求完全相等。在比较对象时,`==`只比较引用,`===`比较内容。推荐使用`===`以确保准确性,但在需要类型转换时可谨慎使用`==`。注意特殊值如`null`和`undefined`的比较。在数据验证、类型判断和条件判断等场景中,应根据需求选择合适的运算符。理解两者差异能提升代码质量和稳定性。
|
3天前
|
JavaScript 前端开发 开发者
解密 JavaScript 中的三元运算符:简洁而强大的条件表达式
解密 JavaScript 中的三元运算符:简洁而强大的条件表达式
18 0
|
3天前
|
JavaScript 前端开发
详解中JS——运算符的快速使用
详解中JS——运算符的快速使用
21 1
|
3天前
|
JavaScript
js开发:请解释什么是ES6的扩展运算符(spread operator),并给出一个示例。
ES6的扩展运算符(...)用于可迭代对象展开,如数组和对象。在数组中,它能将一个数组的元素合并到另一个数组。例如:`[1, 2, 3, 4, 5]`。在对象中,它用于复制并合并属性,如`{a: 1, b: 2, c: 3}`。
13 3