javascript interview question #18

Неужели тут что-то может быть неправильно? Что будет выведено на экран?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Так же, как и в предыдущем тесте, мы имеем дело с преобразованием типов и нестрогим сравнением используя оператор ==.

Когда JavaScript вычисляет выражение true + true, он сначала преобразовывает оба значение в числа, и только после этого складывает их. Для переменных логического типа правила такие: true становится единицей, а false - нулем.

Когда мы пытаемся выполнить сравнение 2 == true, то приведение типов в JavaScript возникает снова и мы получаем выражение 2 == 1.

Ответ, очевидно, false и мы идем в ветку else.

Чтобы понять, как приведение типов работает с оператором + и разными типами данных, советую тебе прочесть эту заметку.


ОТВЕТ: на экран будет выведена строка everyone is different after all.