Об этом проекте

# What the f*ck JavaScript? Этот репозиторий — коллекция юмористических и загадочных примеров на JavaScript, вдохновлённая докладом Брайана Леру «WTFJS» на dotJS 2012. Цель — собрать странные фрагменты кода и объяснить, как они работают, часто со ссылками на спецификацию ECMA-262. Руководство доступно в виде npm-пакета (`wtfjs`) для чтения офлайн, а также переведено на несколько языков, включая китайский, хинди, французский, португальский, польский, итальянский и корейский. ## Обзор содержимого Список включает более 60 примеров, каждый с фрагментом кода и подробным объяснением. Темы охватывают: - **Причуды равенства и приведения типов**: например, `[] == ![]` — `true`, `true == []` — `false`, `null == false` — `false`. - **NaN и числовые странности**: `NaN === NaN` — `false`, `Number.MIN_VALUE > 0` — `true`, крайние случаи `parseInt`. - **Поведение массивов и строк**: конкатенация массивов, висячие запятые, монстры равенства массивов. - **Аномалии функций и классов**: ошибки `class Foo extends null`, стрелочные функции не являются конструкторами. - **Разные трюки**: `"b" + "a" + +"a" + "a"` даёт `'baNaNa'`, HTML-комментарии в JavaScript, `document.all` как undefined и многое другое. Каждый пример снабжён ссылками на соответствующие разделы спецификации ECMA-262 или внешние источники, что делает его полезным справочником как для новичков, стремящихся к более глубокому пониманию, так и для профессионалов, ищущих сборник неожиданных граней JavaScript. ## Мотивация Основная цель — веселье и обучение. Автор призывает читателей исследовать спецификацию и открывать для себя что-то новое, независимо от того, новички они или опытные разработчики. ## Использование Установка через npm: ``` $ npm install -g wtfjs ``` Затем запустите `wtfjs`, чтобы открыть руководство в предпочитаемом постраничном просмотрщике. ## Переводы Переводы, поддерживаемые сообществом, доступны на нескольких языках, хотя они могут не включать все примеры или быть не полностью актуальными. ## Лицензия Выпущено под лицензией WTFPL 2.0.