#javascript
#javascript
Вопрос:
когда я запускаю этот код на javascript и не понимаю, почему ответ равен 2:
“1”- -”1”
Комментарии:
1. В математике, когда вы вычитаете отрицательное число, вы фактически добавляете его положительное значение. Итак
1 - -1 === 2
(и в JS, при использовании вычитания для строк они автоматически преобразуются в числа. Спомощью, вы получите
"1" "1" === "11"
, потому что он просто объединит их)2. Вы имеете в виду это
("1") - (-"1")
? Тогда это просто базовая математика, там JavaScript преобразует строку в числа (целые числа), а затем добавляет как два минус результата в addtion.
Ответ №1:
В Javascript есть две разные операции, обозначаемые символом dash ( -
): вычитание, которое является двоичной операцией, как в 1-2
, и операция унарного отрицания, как в -5
. Обе операции преобразуют свои аргументы в числа, поэтому ваше выражение интерпретируется как
Number("1") <subtract> (<negate> Number("1"))
что приводит к 1 - (-1)
, что есть 2
.
Обратите внимание, что это контрастирует с другим «двойным» оператором
, который выполняет преобразование чисел только в унарной форме:
10 "1" // 11
10 "1" // "101"