Кодирование очень обширно, и существует множество различных способов реализации одной и той же бизнес-логики в коде. В дополнение к этому разные языки предоставляют разные синтаксисы/операторы для выполнения задачи.
Сегодня мы увидим 6 способов в JavaScript, которые могут сэкономить ваши строки кода, а также повысить его понятность. А также увидите разницу в том, как выглядит код после их реализации.
1. Тернарный оператор
Это наиболее часто используемая замена оператора if-else. Помимо JavaScript, он доступен и на других языках.
Тернарный оператор определяется в следующем синтаксисе:
<condition> ? <what to do if true> : <what to do if false>
Пример кода без тернарного оператора:
if(a>b){ console.log('A is greater') } else { console.log('B is greater') }
Пример кода с тернарным оператором
a>b ? console.log('A is greater') : console.log('B is greater')
Рабочий пример на консоли Google Chrome
10>5 ? console.log('10 is greater') : console.log('5 is greater') // prints 10 is greater 10>15 ? console.log('10 is greater') : console.log('15 is greater') // prints 15 is greater
2. Короткое замыкание
Этот метод можно использовать, если вы хотите использовать простое условие if. Его можно использовать с помощью оператора &&.
Пример кода с использованием условия if
if(a===b){ executeFunction() }
Пример кода с использованием короткого замыкания
a===b && executeFunction()
если условие (a===b) оценивается как ложное, то оператор после && (здесь executeFunction) не будет выполнен. Таким образом, мы можем добиться того же потока, что и при условии if.
Это может быть связано для замены нескольких операторов if
a===b && x===y && executeFunction() (a===b || x===y) && executeFunction()
Рабочий пример на консоли Google Chrome
10===10 && 1===1 && console.log('ok') // prints ok 10===10 && 1===2 && console.log('ok') // prints false (10===10 || 1===2) && console.log('ok') // prints ok
3. Необязательный оператор цепочки
Необязательный оператор цепочки используется в случае объектов. Он может проверять наличие свойств объекта и возвращает false, если свойство не существует для объекта.
Рассмотрите следующий объект
const obj = { name:{ firstName: 'Neelesh', lastName: 'Arora' } }
Пример кода без дополнительного оператора цепочки
if(obj.name){ if(obj.name.firstName){ console.log(obj.name.firstName) } } if(obj.name && obj.name.firstName){ console.log(obj.name.firstName) }
Пример кода с необязательным оператором цепочки
console.log(obj.name?.firstName)
4. Нулевой оператор объединения
Тернарный оператор уже сокращает код по сравнению с if-else. Этот оператор (??) может сделать код еще короче.
Пример кода без нулевого оператора объединения
return obj?.name ? obj.name : 'Name doesn't exist'
Пример кода с нулевым оператором объединения
return obj?.name ?? 'Name doesn't exist'
Этот код возвращает само obj.name, если оно существует, иначе возвращает сообщение — «Имя не существует», если obj.name не существует.
5. Использование общего возврата вместо возврата в блоке if-else
Это так просто. Просто изменив несколько строк кода, мы получим более чистый и лучший код.
Код без изменений
function a(arg){ if(arg===0){ return 'Argument is zero' }else if(arg>0){ return 'Argument is a positive number }else{ return 'Argument is a negative number' } }
Код с изменениями
function a(arg){ if(arg===0){ return 'Argument is zero' }else if(arg>0){ return 'Argument is a positive number } return 'Argument is a negative number' }
6. Избегать возврата new Promise() и напрямую использовать методы класса Promise
Код большего размера
function isPositiveNumber(num){ return new Promise((resolve,reject)=>{ if(num > 0){ resolve(true) } reject(false) }) }
Сокращенный код
function isPositiveNumber(num){ num > 0 ? Promise.resolve(true) : Promise.reject(false) }
Хорошо!
«Любой дурак может написать код, понятный компьютеру. Хорошие программисты пишут код, понятный людям», — Мартин Фаулер.
Следуя приведенному выше высказыванию Мартина Фаулера, крайне важно понимать, что качественный код может не только повысить производительность, но и помочь другим разработчикам легко понять и ознакомиться со всей кодовой базой.
На этом я заканчиваю эту статью и надеюсь, что эти советы определенно помогут писать чистый и лучший код.