Операторы сравнения. Почему false?
Доброздравия читающим!
Такой вопрос возник: console.log('true' == true); // выводит false Почему? У нас же НЕ строгое равенство... |
Простой ответ: потому что так решили при создании языка, в этом нет сакральной логики.
Углублённый ответ: иди и почитай спецификацию приведения типов, там по пунктам расписано что и как происходит, почему - ответ выще. Правильный ответ: забудь об == и всё. Просто всегда используй === и не забивай себе голову бесполезным мусором. |
Цитата:
Если один из операторов Boolean, то он приводится к Number и сравнивается снова. 'true' == 1 Если один из операторов String, а другой Number, то делается попытка преобразовать строку в число. И далее сравнивается строго NaN === 1 |
Часовой пояс GMT +3, время: 06:37. |