Не тратьте время на написание длинного кода, вы можете сделать его коротким, но при этом более понятным и легким для чтения.
У всех есть двадцать четыре часа в сутки.
Мы не можем создать больше времени, чем это число, но мы можем эффективно использовать его каждую секунду.
Один из способов сделать это - сократить код с помощью следующих 15 приемов.
1. Сокращение объявления переменных
Если это не имеет смысла, не объявляйте каждую переменную в каждой строке. Одной строки достаточно, сэкономьте места.
Вместо того:
let name; let price = 12; let title; let discount = 0.3;
Сделай это:
let name, price = 12, title, discount = 0.3;
2. Условное обозначение
Я думаю, что это так очевидно, но пока это служит предмету обсуждения, я вставляю это.
Вместо того:
if (isUsernameValid === true) {} if (isExist === false) {}
Сделай это:
if (isUsernameValid) {} if (!isExist) {}
3. Использование десятичной базовой экспоненты
1000000 может вызвать некоторые ошибки, если вы пропустите один или два нуля. Чем больше нуля в хвосте, тем больше внимания нужно уделять. К счастью, вам не нужно этого делать. Вместо того, чтобы писать 1000000, вы можете просто сократить его до 1e6. 6 представляет количество нулей в хвосте.
Вместо того:
let length = 10000; for (let i = 0; i < length; i++) {}
Сделай это:
let length = 1e4; for (let i = 0; i < length; i++) {}
4. Параметры по умолчанию
Иногда вам нужно определить функцию с несколькими параметрами. Вам нужно передавать все значения параметров каждый раз, когда вы вызываете функцию? Не совсем, если вы инициализируете значения по умолчанию.
Вместо того:
let generateBookObject = (name, price, discount, genre) => { let book = { name, price, discount, genre }; return book; }; let book = generateBookObject(‘JavaScript’, 12, 0.3, ‘Technology’); // { name: ‘JavaScript’, price: 12, discount: 0.3, genre: ‘Technology’ }
Сделай это:
let generateBookObject = (name = ‘JavaScript’, price = 12, discount = 0.5, genre = ‘Technology’) => { let book = { name, price, discount, genre }; return book; }; // In case discount and genre are the same as the default values, you don’t need to pass them to the function let book = generateBookObject(‘JavaScript’, 12); // { name: ‘JavaScript’, price: 12, discount: 0.5, genre: ‘Technology’ }
5. Тернарный оператор
Если в условном операторе есть только один оператор, сократите его до одной строки с помощью тернарного.
Вместо того:
let name = ‘Amy’; let message; if (name === ‘Amy’) { message = ‘Welcome back Amy’; } else { message = ‘Who are you?’; }
Сделай это:
let name = ‘Amy’; let message = name === ‘Amy’ ? ‘Welcome back Amy’ : ‘Who are you?’;
6. Краткий вариант перебора списка
Не в каждом случае вы можете заменить метод цикла на короткий, но если это произойдет, то сделайте это.
Вместо того:
let names = [‘Amy’, ‘James, ‘David’, ‘John’]; for (let i = 0; i < names.length; i++) {}
Сделай это:
let names = [‘Amy’, ‘James, ‘David’, ‘John’]; for (let name of names) {}
В случае, если индексы имеют значение:
for (let [index, name] of names.entries()) {}
7. Минимальная оценка
Вы должны убедиться, что переменные в порядке (под OK я имею в виду, что они не равны null или undefined), прежде чем использовать их для каких-либо вычислений.
В этом случае подходит if… else, но лучше использовать минимальную оценку.
Вместо того:
let book = { name: ‘Learn JavaScript’, price: 15 }; let finalPrice; if (book.discount !== undefined || book.discount !== null) { finalPrice = book.price — book.price * book.discount; }
Сделай это:
let book = { name: ‘Learn JavaScript’, price: 15 }; let finalPrice = book.price — book.price * (book.discount || 0);
8. Сокращение объявления объектов
Это на случай, если вы хотите определить свойства объекта, используя существующие переменные.
let name = ‘Amy’; let age = 28; let person = { name, age }; // { name: ‘Amy’, age: 28 }
Обратите внимание, что имя свойства совпадает с именем существующей переменной.
9. Использование функции стрелки
Это отличный способ значительно сократить количество строк кода.
Вместо того:
function add(a, b) { return a + b; } collection.map(function(item) { console.log(item); });
Сделай это:
let sum = (a, b) => a + b; collection.map(item => console.log(item));
10. Сокращение преобразования строки в число
Вместо того:
let string = ‘2020’; let number = parseInt(string);
Сделай это:
let string = ‘2020’; let number = +string;
11. Использование деструктуризации
Вам не нужно назначать переменные по очереди, если вы хотите извлечь значения свойств объекта. Используйте деструктуризацию.
Вместо того:
let company = { name: ‘Apple’, industry: ‘Technology’, CEO: ‘Tim Cook’, stockPrice: 364, products: [‘iPhone’, ‘Macbook’, ‘Apple Watch’] }; let name = company.name; let stockPrice = company.stockPrice; let products = company.products;
Сделай это:
let { name, stockPrice, products } = company; // In case you want to use different variable name. For example, companyName instead of name let { name:companyName, stockPrice, products } = company;
12. Шаблонные строки
Вместо того:
let name = ‘Amy’; let time = ‘yesterday’; let welcomeMessage = ‘Welcome back ‘ + name + ‘. Your last time is ‘ + time;
Сделай это:
let name = ‘Amy’; let time = ‘yesterday’; let welcomeMessage = `Welcome back ${name}. Your last time is ${time}`;
Примечание. welcomeMessage использует обратную кавычку (`), а не апостроф (‘) или цитату (“).
13. Math.pow () Сокращение.
Вместо того:
let result = Math.pow(3, 5); // 243
Сделай это:
let result = 3**5; // 243
14. Использование обратных кавычек для многострочной строки
Вместо того:
let greeting = ‘Hi, I am Amy\n’ + ‘I am a programmer.\n’ + ‘Nice to meet you.’;
Сделай это:
let greeting = `Hi, I am Amy I am a programmer. Nice to meet you.`
15. Использование распространения для добавления вещей
Insteand из:
let arr1 = [3, 5, 1]; let arr2 = [2, 4, 8]; let result = arr1.concat(arr2);
Сделай это:
let arr1 = [3, 5, 1]; let result = [...arr1, 2, 4, 8] // Or even at any index you want let result = [2, ...arr1, 4, 8] // You can also use spread with objects let person = { name: ‘Tony’, age: 43 }; let superHero = { heroName: ‘Ironman’, ...person };
Вышеупомянутые методы должны дать вам ощущение короче, понятнее и легче для чтения.
Конечно, есть еще много стенографических приемов, которых я не знаю. Буду признателен, если вы что-нибудь предложите.
JavaScript на простом английском языке
Вы знали, что у нас четыре публикации и канал на YouTube? Найдите их все на plainenglish.io и подпишитесь на Decoded, наш канал YouTube!