Об этом проекте
# 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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.