javascript interview question #17

Равна ли сумма двух пустых массивов false?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Чтобы проанализировать этот тест, нам нужно понимать как работает преобразование типов в JavaScript.

Когда мы пытаемся сложить два массива используя оператор +, массивы сначала становятся строками, а потом складываются.

Пусто массив [] становится пустой строкой после первого преобразования. А сумма двух пустых строк — тоже пустая строка.

И, мы приходим к финальному вопросу:

Равна ли в JavaScript пуста строка false или нет?

В тесте для сравнения используется оператор ==. Этот оператор выполняет нестрогое сравнение. Это значит, что под капотом JavaScript сначала выполнит приведение типов операндов, а потом — сравнение.

В нашем случае пустая строка и false считаются равными, потому что оба будут приведены к числу 0 и условие внутри if будет равно true.

Если тебе нужно выполнить строгое сравнение, которое сначала проверит совпадение типов операндов в JavaScript, то используй оператор ===.

Тут, ты можешь найти больше информации о базовой математике JavaScript.


ОТВЕТ: на экран будет выведена строка same.