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?
精彩评论