Наиболее разумный подход к написанию JavaScript-кода
Замечание: это руководство подразумевает использование Babel вместе с babel-preset-airbnb или аналогом. Оно также предполагает установленный shims/polyfills в вашем приложении, такой как airbnb-browser-shims или аналог.
25.1 Когда привязываете данные к событию (например, события DOM
или какие-то собственные события, как Backbone
события), передавайте литерал объекта (также известный как «хэш») вместо простого значения. Это позволяет другим разработчикам добавлять больше данных без поиска и изменения каждого обработчика события. К примеру, вместо:
предпочитайте:
26.1 Начинайте названия переменных, хранящих объект jQuery, со знака $
.
26.2 Кэшируйте jQuery-поиски.
$('.sidebar ul')
или селектор родитель > ребёнок $('.sidebar > ul')
. jsPerf26.4 Используйте функцию find
для поиска в сохранённых jQuery-объектах.
28.2 Не используйте предложения TC39, которые не перешли на 3-ю стадию.
Почему? Они ещё не закончены и могут быть изменены или полностью изъяты. Мы хотим использовать JavaScript, а предложения ещё не стали частью JavaScript.
Стандартная библиотека
содержит утилиты, функциональность которых сломана, но они остались для поддержки старого кода.
29.1 Используйте Number.isNaN
вместо глобального isNaN
.
eslint: no-restricted-globals
Почему? Глобальная функция
isNaN
приводит не-числа к числам, возвращаяtrue
для всего, что приводится кNaN
.
Если такое поведение необходимо, сделайте его явным.
29.2 Используйте Number.isFinite
вместо глобального isFinite
.
eslint: no-restricted-globals
Почему? Глобальная функция
isFinite
приводит не-числа к числам, возвращаяtrue
для всего, что приводится к конечному числу.
Если такое поведение необходимо, сделайте его явным.
30.1 Ага.
mocha
и jest
от Airbnb. tape
также иногда используется для небольших, отдельных модулей.map()
, reduce()
, and filter()
optimized for traversing arrays?Изучение ES6+
Почитайте это
Инструменты
Другие руководства
Другие стили
Дальнейшее чтение
Книги
Блоги
Подкасты