Какая значительная польза унарных операторов плюс и минус?

Если одинарный +/- операторы используются для выполнения преобразований как 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 затрудняет чтение, но может быть полезно, чтобы ваши строки были короткими?

Другие вопросы по тегам