Какая значительная польза унарных операторов плюс и минус?
Если одинарный +
/-
операторы используются для выполнения преобразований как Number()
функция приведения, тогда зачем нам унарные операторы? В чем особая необходимость этих унарных операторов?
2 ответа
Онар +
Оператор преобразует свой операнд в числовой тип. Онар -
Оператор преобразует свой операнд в числовой тип, а затем отрицает его.
(согласно спецификации ECMAScript)
На практике Унар -
используется для простого помещения отрицательных чисел в нормальные выражения, например:
var x = y * -2.0;
Это унарный минус оператор на работе. Онар +
эквивалентно конструктору Number(), вызываемому как функция, как подразумевается в спецификации.
Я могу только строить догадки об истории, но унарные операторы +/- ведут себя аналогично во многих языках, производных от Си. Я подозреваю, что поведение Number() является дополнением к языку здесь.
Практическая сторона этого состоит в том, что если у вас есть функция, которая должна возвращать число, вы можете использовать
const result = +yourFunc()
вместо того
const result = Number(yourFunc())
или
const result = -yourFunc()
вместо того
const result = -Number(yourFunc())
Он вернет NaN так же, как Number().
IMO затрудняет чтение, но может быть полезно, чтобы ваши строки были короткими?