предисловие
функции, параметры, деструктуризация, элегантность, читабельность, приемы
Будь то вызов сторонней библиотеки или функция самого проекта, в процессе разработки всегда есть функция. Можно сказать, что функция — это первая производительная сила, освобождающая код Некоторые студенты скажут, что вы поместили туда класс. На самом деле, функции и данные могут быть использованы для имитации классов, а классы больше связаны с функциями.归集а также复用Расширяйте и обновляйте.
При вызове функции необходимо указать, что参数Теперь многие мелкие партнеры могут легко писать функции как:
function area (width, height) {
return width * height;
}
Эти два параметра легко запомнить, но сначала выполняется следующая ситуация:
function infomation (
name, sex, height, birthday,
color, likes, follow, age
) {
// ...
}
Так много параметров используется каждый раз, когда делается запрос на разработкуideЭто будет автоматически предложено, но если нет, вам может потребоваться пролистать документ или перейти к определению для просмотра, за исключением более неприятных моментов.
Почему программисты должны смущать программистов.
Я не знаю, связывались ли вы с другими для разработки.Некоторые студенты иногда не задумываются о том, понимают ли другие их код.依赖, порядок выданных вам параметров будет изменен одним выстрелом в голову, и вся армия рухнет после ввода кода.报错飘红.
Передать объект вместо списка параметров
Вы можете использовать объекты JavaScript для передачи параметров:
function infomation (user) {
// user.name
}
infomation({ name: 'xiaoer', age: 18 })
Передача свойств объекта относительно списка параметров легче запоминается и не имеет принудительного порядка.Если наименование достаточно понятно, вы даже можете просто просмотреть его при дальнейшем сопровождении кода.属性名можно сразу понять. Если другие учащиеся будут разрабатывать новые функции, они не будут бояться, что они выйдут из строя, но лучше быть совместимыми с вновь добавленными параметрами, иначе другие функции, которые от них зависят, станут популярными все время.
Использование деструктурирующего присваивания
Список параметров заменяется объектом для решения проблемы порядка списка параметров, но каждый раз при его вызове нужно начинать с对象中取值Заставляет функцию обращаться к объекту каждый раз, увеличивая длину переменной и делая ее бессмысленной.赋值. Кроме того, если звонящий не осторожен多传递了参数, и, к сожалению, в функции происходит обход объекта, что может вызвать ошибку, которую можно решить путем деструктурирования присваивания:
function infomation ({ name, age, height }) {
}
Это делает оба переданных параметра防御Вы также можете легко использовать параметры.
использовать по умолчанию
Никогда не знаешь, как пользователи будут использовать продукт.
После запуска продукта всегда будут какие-то странные ошибки, пользователи всегда работают с продуктом не так, как ожидалось, а постоянный BUG действительно неудобен.
По сути, мы тоже являемся пользователем при вызове функции, некоторые параметры не могут быть пустыми, но мы даем нулевое значение, из-за чего функция не выполняется должным образом. При написании функций вы должны хорошо поработать над тем, чтобы не разыгрывать карты в соответствии с рутиной, когда другие вызывают функцию, например, задавая значения по умолчанию и преобразовывая данные:
function infomation ({ name = 'anonymous', age = 0, height = 160 }) {
// ...
}
Конечно, вы также можете использоватьTypeScriptи другие инструменты для повышения безопасности программирования, но巧妇难为无米之炊Иногда вы не можете использовать его, если хотите, и вся компания должна обновить технологию вместе.
параметр становится необязательным
Функция в приведенном выше примереinfomation({ age: 16 })В случае такого вызова выполняются ожидаемые значения по умолчанию. Но когда вы хотите сделать этот объект также необязательнымinfomation()Это будет ошибка, потому что ни один объект не допускается деконструкцией, вы можете использовать{}чтобы сделать объект необязательным:
function infomation ({ name = 'anonymous', age = 0, height = 160 } = {}) {
// ...
}
Переименовать
Иногда необходимо переименовать параметр, но этот параметр уже используется во многих местах. Можно переименовать функцию в самом начале выполнения, но на это явно не хватит гиков (в основном не ленивых) и все равно использовать解构赋值реализовать переименование:
function infomation ({ name:username = 'anonymous', age = 0, height = 160 } = {}) {
// ...
}
Конечно解构赋值Его также можно использовать в обычной разработке, что нам удобно писать规范из奇淫技巧, приносит лень и элегантность одновременно.
Параметры принудительной передачи
Помимо использования значений параметров по умолчанию, вы также можете принудительно передать параметры функции:
сценарий
// 帮助函数
const err = ( message ) => {
throw new Error( message );
}
// 函数
const sum = function (
num = err('first param is not defined'),
otherNum = err('second param is not defined')
) {
return num + otherNum;
}
вызов теста
// 测试函数
// 输出: 3
console.log(sum(1, 2));
// 测试第一个参数不传递
// Uncaught Error: first param is not defined
sum( undefined, 10 );
// 测试第二个参数不传递
// Uncaught Error: second param is not defined
sum( 10 );
Расти вместе
В запутанном городе неизбежно идти бок о бок
伙伴Давайте расти вместе.
- Если вы хотите, чтобы статью увидело больше людей, нажмите
点赞. - Если вы хотите мотивировать второго ребенка, вы можете перейти кGithubдать
小星星. - Если вы хотите больше общаться с Xiaoer, добавьте WeChat
m353839115.
Оригинал статьи изPushMeTop