Преобразование типов для отрицательной строки

227
30 июня 2017, 08:50

Добрый день, подскажите, почему в Javascript минус перед "строкой" превращает ее в число?

Например:

typeof (-"30"); // number;
typeof ("30"); // string;  

Спасибо!!

Answer 1

Согласно спецификации

The unary - operator converts its operand to Number type and then negates it. Negating +0 produces −0, and negating −0 produces +0.

Оператор "Унарный –" преобразует свой операнд к типу Number и затем инвертирует знак. Инвертирование для +0 даст −0, и для −0 - +0.

Далее следует алгоритм работы данного оператора:

  1. Вычислить выражение
  2. Вызвать ToNumber
  3. Если результат NaN вернуть NaN
  4. Вернуть результат полученный на втором шаге с инвертированным знаком.
READ ALSO
Добавить методы в конструктор [дубликат]

Добавить методы в конструктор [дубликат]

На данный вопрос уже ответили:

191
Найти строки соответствующие шаблону YYYY/MM/DD HH:MM(:SS)

Найти строки соответствующие шаблону YYYY/MM/DD HH:MM(:SS)

Выбрать существующие даты между 1000 и 2012 годомСекунды могут быть опущены

174
Нужна помощь в решении задачи

Нужна помощь в решении задачи

Собственно выполняю задание на Codewars(Ссылка) и столкнулся с проблемой: что при тестировании кода, не всё хорошо

177