Что делает эта строка javascript?
Если посмотреть на условные обозначения jslint, я увидел эту строку:
total = subtotal + (+myInput.value);
Какова цель второго "+"?
Ответы
Ответ 1
Унарный плюс существует для полноты, по сравнению с обычным унарным минусом (-x). Однако он имеет побочный эффект, на который опирается здесь, на листинг myInput.value на Number, если это что-то еще, например String:
alert(1+'2'); // 12
alert(1+(+'2')); // 3
Ответ 2
Это называется "оператором унарного +", его можно использовать как быстрый способ принудительно преобразовать переменную в число, чтобы ее можно было использовать в математической операции.
Ответ 3
Оператор унарный + превращает вещи в число.
Ответ 4
Символ + должен указывать на число, как говорили другие. Он нужен там, потому что входные данные формы всегда являются строковыми значениями, а добавление строки в другую переменную объединяет их вместе в новую строку, даже если строка выглядит как число.
Ответ 5
Оператор унарного плюса, арифметически говоря, является noop. Но, как и все другие чисто арифметические операторы, он преобразует свой аргумент в тип номера JavaScript и поэтому может использоваться как сокращенное выражение для явного приведения.
Явное выполнение типов в JavaScript выполняется путем вызова соответствующих функций конструктора без использования оператора new
.
Например,
Number(foo)
преобразует foo
в примитив номера типа, тогда как new Number(foo)
дополнительно создаст объект-оболочку для примитива и, следовательно, будет эквивалентен
Object(Number(foo))
Подобным образом использование +
- это использование !!
для преобразования в логический тип.