Как и во всех других языках программирования, в JavaScript есть множество приемов для выполнения как простых, так и сложных задач. Некоторые приемы хорошо известны, а других достаточно, чтобы вас удивить. Давайте взглянем на семь приемов JavaScript, которые вы можете начать использовать уже сегодня!
Оригинальная ссылка:Дэвид Уолш. Так / JavaScript- ...
Дедупликация массива
Дедупликация массива может быть проще, чем вы думаете:
var j = [...new Set([1, 2, 3, 4, 4])]
>> [1, 2, 3, 4]
Это очень просто и есть дерево!
отфильтровать ложные значения
Вам нужно отфильтровать значение FALSY из массива (0
,undefined
,null
,false
Ждать)? Вы можете не знать, что есть такой трюк:
let res = [1,2,3,4,0,undefined,null,false,''].filter(Boolean);
>> 1,2,3,4
Создать пустой объект
ты можешь использовать это{ }
Создает кажущийся пустым объект, но объект все еще имеет__proto__
и обычныйhasOwnProperty
и другие объектные методы. Тем не менее, есть способ создать чистый объект «словаря»:
let dict = Object.create(null);
// dict.__proto__ === "undefined"
// No object properties exist until you add them
Объекты, созданные таким образом, очень чистые, без каких-либо свойств и объектов, очень чистые.
Объединить объекты
Необходимость объединять несколько объектов в JavaScript уже существует, особенно когда мы начинаем создавать классы и виджеты с параметрами:
const person = { name: 'David Walsh', gender: 'Male' };
const tools = { computer: 'Mac', editor: 'Atom' };
const attributes = { handsomeness: 'Extreme', hair: 'Brown', eyes: 'Blue' };
const summary = {...person, ...tools, ...attributes};
/*
Object {
"computer": "Mac",
"editor": "Atom",
"eyes": "Blue",
"gender": "Male",
"hair": "Brown",
"handsomeness": "Extreme",
"name": "David Walsh",
}
*/
эти три точки(...)
Облегчает задачу!
Требуют параметров функции
Можно установить значение по умолчанию для параметра функции — это отличное дополнение к JavaScript, но, пожалуйста, ознакомьтесь с этим советом, требующим значения данного параметра:
const isRequired = () => { throw new Error('param is required'); };
const hello = (name = isRequired()) => { console.log(`hello ${name}`) };
// This will throw an error because no name is provided
hello();
// This will also throw an error
hello(undefined);
// These are good!
hello(null);
hello('David');
Деструктуризация для добавления псевдонимов
Деструктуризация — очень полезное дополнение к JavaScript, но иногда мы предпочитаем называть эти свойства другими именами, поэтому мы можем воспользоваться псевдонимами:
const obj = { x: 1 };
// Grabs obj.x as { x }
const { x } = obj;
// Grabs obj.x as { otherName }
const { x: otherName } = obj;
Помогает избежать конфликтов имен с существующими переменными!
Получить параметры строки запроса
Получите значение параметра в URL-адресе или добавьте строку запроса. Раньше мы обычно получали значение строки запроса с помощью регулярных выражений. Однако теперь появился новый API. Для получения подробной информации вы можете проверитьздесьЭто позволяет нам очень простой способ справиться с URL.
Например, теперь у нас есть такой URL-адрес «?post=1234&action=edit», мы можем использовать следующие методы для обработки этого URL-адреса.
// Assuming "?post=1234&action=edit"
var urlParams = new URLSearchParams(window.location.search);
console.log(urlParams.has('post')); // true
console.log(urlParams.get('action')); // "edit"
console.log(urlParams.getAll('action')); // ["edit"]
console.log(urlParams.toString()); // "?post=1234&action=edit"
console.log(urlParams.append('active', '1')); // "?post=1234&action=edit&active=1"
Гораздо проще, чем мы привыкли использовать!
JavaScript сильно изменился за эти годы, но моя любимая часть JavaScript — это скорость, с которой мы наблюдаем улучшение языка. Несмотря на постоянно меняющуюся динамику JavaScript, нам все еще нужно использовать несколько хороших приемов; держите эти приемы в наборе инструментов, чтобы вы могли использовать их, когда они вам понадобятся!
Итак, какой ваш любимый трюк с JavaScript?
Если вы считаете, что статья немного полезна для вас, добро пожаловать вмой блог на гитхабеСтавьте лайк и подписывайтесь, большое спасибо!