开发者

What's the significant use of unary plus and minus operators?

If unary +/- operators are used to perform conversions开发者_如何转开发 as the Number() casting function, then why do we need unary operators? What's the special need of these unary operators?


The Unary + operator converts its operand to Number type. The Unary - operator converts its operand to Number type, and then negates it. (per the ECMAScript spec)

In practice, Unary - is used for simply putting negative numbers in normal expressions, e.g.:

var x = y * -2.0;

That's the unary minus operator at work. The Unary + is equivalent to the Number() constructor called as a function, as implied by the spec.

I can only speculate on the history, but the unary +/- operators behave similarly in many C-derived languages. I suspect the Number() behavior is the addition to the language here.


The practical side of this is if you have a function that you need to return a number you can use

const result = +yourFunc()

instead of

const result = Number(yourFunc())

or

const result = -yourFunc()

instead of

const result = -Number(yourFunc())

It will return NaN the same way that Number().

IMO makes things a little harder to read, but could be useful to keep your lines short?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜