一元加号和减号运算符有什么重要用途?

59
如果使用一元的+/-运算符来执行类似于Number()转换函数的转换,那么为什么我们还需要一元运算符?这些一元运算符有什么特殊需求呢?
2个回答

76

一元+运算符将其操作数转换为数字类型。 一元-运算符将其操作数转换为数字类型,然后对其取反。(根据ECMAScript规范)

在实践中,一元-通常用于在普通表达式中表示负数,例如:

var x = y * -2.0;

这就是一元减运算符在起作用。一元+等同于调用Number()构造函数并将其作为函数使用,这是规范暗示的。

我只能猜测历史背景,但许多衍生自C的语言中,一元+/ - 运算符的行为类似。 我怀疑这里对该语言进行了Number()行为的添加。


1
这个实际应用是,如果你需要返回一个数字的函数,你可以使用
const result = +yourFunc()

替代

const result = Number(yourFunc())

或者

const result = -yourFunc()

替代

const result = -Number(yourFunc())

它将以与Number()相同的方式返回NaN。
在我看来,这使得阅读有点困难,但可以保持行短?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接