Привет!
Существует таблица неявного приведения типов или где правильные ответы смотреть?
Пример:
[1] + [2] - [3]
= 9
или:
{} + {}
= "[object Object][object Object]"
Правильные ответы есть в спецификации.
В примерах в вопросе нужно смотреть операции сложения и вычитания.
Как видно из алгоритма, в случае сложения сначала операнды приводятся к примитивному типу, с помощью вызова внутренней функции ToPrimitive (алгоритм ToPrimivite можно также увидеть в ответе на вопрос В чем разница между valueOf
и toString
)
Далее, если хотя бы один из операндов строка - производится сложение строк.
В противном случае, операнды приводятся к числу и выполняется сложение чисел.
В случае с вычитанием - операнды сразу приводятся к числу.
Рассмотрим первый пример из вопроса: [1] + [2] - [3]
[1] + [2]
.
ToString
, следовательно: [1]+[2] -> "1"+"2"
"1"+"2" = "12"
"12" - [3]
.
"12" -> 12
, [3] -> "3" -> 3
12 - 3 = 9
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Привет, подробно изучал Steam-user, хочу создавать аккаунты, но node игнорирует ifКод:
На данный вопрос уже ответили: