JavaScript: сумма двух пустых массивов
какой результат даст сумма двух пустых массивов
Итак, нам нужно сложить в JavaScript два пустых массива [] + []
. Будет ли равен полученный результат false
?
Чтобы дать верный ответ, прежде всего, необходимо понять, как в JavaScript работает преобразование типов.
Когда мы складываем между собой два пустых массива с помощью оператора +
, в первую очередь происходит преобразование каждого массива в строку, после чего полученные строки объединяются (конкатенируются).
Пустой массив []
в результате преобразования дает пустую строку. Несложно догадаться, что суммой пустых строк будет пустая строка.
Теперь, необходимо определиться: будет ли пустая строка равна false
?
Если мы используем для сравнения оператор нестрогого равенства ==
происходит следующее: сначала каждое значение приводится к числу. Таким образом, и пустая строка и false
будут преобразованы в 0
. После этого происходит сравнение значений, а это означает, что наше равенство будет верным:
console.log([] + [] == false);
// результат: true
Но, если необходимо осуществить строгое сравнение суммы двух пустых массивов и логического значения false
, равенство будет неверным, така как оператор строгого равенства ===
проверяет выражение без приведения типов, а значения, используемые в сравнении в данном случае разных типов (строка и false
):
console.log([] + [] === false);
// результат: false
Спасибо за внимание.