Чтобы код было легко читать и поддерживать, мы должны следовать некоторым передовым методикам.
В этой статье мы рассмотрим некоторые передовые методы, которым следует следовать, чтобы облегчить жизнь каждому.
Не используйте null
литерал
Лучше использовать undefined
для всего, чем использовать null
и undefined
.
Так что мы просто придерживаемся undefined
во всем.
Например, вместо написания:
let foo = null;
or:
if (bar == null) {}
Мы пишем:
let foo;
or:
if (foo === null) {}
No process.exit()
Мы не хотим использовать process.exit
для выхода.
Программа существует внезапно, не давая ей возможности очиститься.
Вместо того, чтобы писать:
process.exit(0);
Мы пишем:
process.on('SIGINT', () => { console.log('Got SIGINT'); process.exit(1); });
Use Array#reduce()
и Array#reduceRight()
reduce
и reduceRight
затрудняют чтение кода.
Их можно заменить на map
, filter
или цикл for-of.
Например, вместо написания:
array.reduce(reducer, initialValue);
Мы пишем:
let result = initialValue; for (const element of array) { result += element; }
Отсутствие нечитаемой деструктуризации массива
Если мы напишем код деструктуризации массива, то мы должны сделать их читаемыми.
Например, вместо написания:
const [, , foo] = parts;
Мы пишем:
const [foo] = parts;
Нет неиспользуемых свойств объекта
Если у нас есть неиспользуемые свойства объекта, мы можем их удалить.
Например, вместо написания:
const obj = { used: 1, unused: 2 }; console.log(obj.used);
Мы пишем:
const obj = { used: 1 }; console.log(obj.used);
Нет бесполезно undefined
Мы не должны использовать undefined
там, где они бесполезны.
Например, вместо написания:
let foo = undefined; const { foo = undefined } = bar; const baz = () => undefined; function foo() { return undefined; } function* foo() { yield undefined; } function foo(bar = undefined) {} function foo({ bar = undefined }) {} foo(undefined);
Мы пишем:
let foo; const { foo } = bar; const baz = () => {}; function foo() { } function* foo() { } function foo(bar) {} function foo({ bar }) {} foo();
Нам не нужна функция, возвращающая undefined
.
И должен возвращать или уступать undefined
, поскольку они выполняются автоматически.
Отсутствие числовых литералов с нулевыми дробями или висячими точками
Мы не хотим добавлять висячие точки или нулевые дроби, поскольку они лишние.
Например, вместо написания:
const foo = 1.0; const foo = -1.0; const foo = 1.;
Мы пишем:
const foo = 1; const foo = -1; const foo = 1;
Обеспечение правильного регистра для числовых литералов
У нас должен быть правильный регистр для числовых литералов.
Например, вместо написания:
const foo = 0XFF; const foo = 0B10; const foo = 0O76;
Мы пишем:
const foo = 0xFF; const foo = 0b10; const foo = 0o76;
Используйте .addEventListener()
и .removeEventListener()
более on
функций
Вместо использования on
функций для добавления прослушивателей событий мы можем использовать addEventListener
и removeListener
.
С addEventListener
мы можем добавлять и удалять слушателя.
Мы также можем указать режим захвата, а не пузырьковую.
Также мы можем зарегистрировать неограниченное количество обработчиков.
Он также отделяет логику от структуры документа.
Исключается путаница с правильными названиями событий.
on-
объекты не реагируют на ошибки должным образом.
Мы можем присвоить ему что угодно и не получить ошибок, что нехорошо.
Поэтому вместо того, чтобы писать:
foo.onclick = () => {};
Мы должны написать:
foo.addEventListener('click', onClick);
а также:
foo.removeEventListener('click', onClick);
Используйте .dataset
в элементах DOM вместо .setAttribute
Вместо использования свойства setAttribute
для установки настраиваемых атрибутов мы можем использовать свойство dataset
.
С этим труднее ошибиться.
Например, вместо написания:
element.setAttribute('data-foo', 'bar');
Мы пишем:
element.dataset.foo = 'bar';
Use KeyboardEvent#key
более KeyboardEvent#keyCode
Свойство keyCode
устарело. Поэтому мы должны использовать свойство key
для проверки кодов клавиш.
Например, вместо написания:
window.addEventListener('keydown', event => { console.log(event.keyCode); });
Мы пишем:
window.addEventListener('keydown', event => { console.log(event.key); });
Заключение
Мы должны использовать undefined
вместо null
.
Кроме того, мы должны использовать addEventListener
и removeEventListener
вместо использования on
функций.
Циклы и другие методы массива лучше, чем reduce
, поскольку код более читабелен.
JavaScript на простом английском языке
Понравилась эта статья? Если да, то получите больше похожего контента, подписавшись на наш канал на YouTube в Decoded!