WTF JavaScript — Когда код ведет себя не так, как ожидаешь
Вы когда-нибудь сталкивались с тем, что ваш JavaScript-код ведет себя совершенно нелогично? Коллекция WTFjs собрала самые парадоксальные и забавные примеры поведения JavaScript, которые удивят даже опытных разработчиков.
Что это за проект?
WTFjs — это сборник неочевидных примеров JavaScript с объяснениями. Автор проекта, Денис Довгань, собрал более 70 случаев, когда JavaScript ведет себя неожиданно. Проект существует уже несколько лет и продолжает пополняться новыми примерами.
// Один из самых известных примеров:
[] == ![] // -> true
Почему это полезно?
- Глубже понимать JavaScript — многие примеры демонстрируют особенности работы спецификации ECMAScript
- Избегать ошибок — зная эти кейсы, вы сможете писать более надежный код
- Подготовиться к собеседованию — некоторые вопросы из этой коллекции любят задавать на интервью
- Развивать дебаггинг-скиллы — учитесь видеть неочевидные причины странного поведения кода
Самые яркие примеры
1. Магия сравнений
JavaScript славится своими неочевидными правилами сравнения:
true == []; // false
true == ![]; // false
false == []; // true
false == ![]; // true
💡 Все дело в преобразовании типов. JavaScript сначала приводит значения к числам, а затем сравнивает.
2. Банановый код
Попробуйте угадать, что вернет этот код:
"b" + "a" + +"a" + "a"; // 'baNaNa'
Оказывается, +"a" дает NaN, что и приводит к такому забавному результату.
3. Странности с числами
0.1 + 0.2 === 0.3; // false
Math.min() > Math.max(); // true
9999999999999999; // -> 10000000000000000
Эти примеры связаны с особенностями работы чисел с плавающей точкой в JavaScript.
Как использовать проект
- Установите через npm:
npm install -g wtfjs
- Читайте онлайн на GitHub
- Используйте как справочник при странном поведении кода
- Добавляйте свои примеры через Pull Request
Кому будет особенно полезно
- Начинающим разработчикам — чтобы быстрее понять особенности JavaScript
- Опытным программистам — для углубления знаний
- Преподавателям — как коллекция примеров для занятий
- Собеседующим — источник каверзных вопросов
WTFjs — это не просто коллекция забавных примеров, а настоящий учебник по тонкостям JavaScript. Проект помогает понять, что за магия происходит под капотом у этого, казалось бы, простого языка. После знакомства с этими примерами вы начнете видеть JavaScript в новом свете.
