WTF JavaScript — Когда код ведет себя не так, как ожидаешь

22 июл 2025
37,673
2,678
568
2 месяца

Вы когда-нибудь сталкивались с тем, что ваш JavaScript-код ведет себя совершенно нелогично? Коллекция WTFjs собрала самые парадоксальные и забавные примеры поведения JavaScript, которые удивят даже опытных разработчиков.

Что это за проект?

WTFjs — это сборник неочевидных примеров JavaScript с объяснениями. Автор проекта, Денис Довгань, собрал более 70 случаев, когда JavaScript ведет себя неожиданно. Проект существует уже несколько лет и продолжает пополняться новыми примерами.

// Один из самых известных примеров:
[] == ![] // -> true

Почему это полезно?

  1. Глубже понимать JavaScript — многие примеры демонстрируют особенности работы спецификации ECMAScript
  2. Избегать ошибок — зная эти кейсы, вы сможете писать более надежный код
  3. Подготовиться к собеседованию — некоторые вопросы из этой коллекции любят задавать на интервью
  4. Развивать дебаггинг-скиллы — учитесь видеть неочевидные причины странного поведения кода

Самые яркие примеры

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.

Как использовать проект

  1. Установите через npm:
npm install -g wtfjs
  1. Читайте онлайн на GitHub
  2. Используйте как справочник при странном поведении кода
  3. Добавляйте свои примеры через Pull Request

Кому будет особенно полезно

  • Начинающим разработчикам — чтобы быстрее понять особенности JavaScript
  • Опытным программистам — для углубления знаний
  • Преподавателям — как коллекция примеров для занятий
  • Собеседующим — источник каверзных вопросов

WTFjs — это не просто коллекция забавных примеров, а настоящий учебник по тонкостям JavaScript. Проект помогает понять, что за магия происходит под капотом у этого, казалось бы, простого языка. После знакомства с этими примерами вы начнете видеть JavaScript в новом свете.

🔗 GitHub репозиторий WTFjs

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.