Автор оригинала: John Kennedy.
Работав с JavaScript для довольно некоторого времени сейчас, я видел различные способы сделать что-то, чтобы в конечном итоге достичь того же результата. Я буду обсуждать оценку короткого замыкания в этом посте.
Эта функция доступна на разных языках, но реализация может быть разной. Для краткости я буду иметь дело конкретно с JavaScript.
В оценке короткого замыкания второй аргумент оценивается только в том случае, если первый аргумент (нет) удовлетворяет данному условию.
Логично и (&&)
Логично и (&&)
: Когда определенное условие оценивает ложь, соответствующие условия (ы) не оцениваются, когда &&
Оператор используется.
Учитывая следующий фрагмент кода:
let username; if (Meteor.user()) { username = Meteor.user().username; }
Мы могли бы использовать &&
Оператор для уменьшения количества строк, которые мы пишем следующим образом:
const username = Meteor.user() && Meteor.user().username; // ES6 destructuring const { username } = Meteor.user() && Meteor.user();
Это читается как: если Meteor.user ()
определяется, назначить значение Имя пользователя
Недвижимость от Meteor.user ()
к Имя пользователя
Переменная. Глядя на этот код, мы значительно сократили количество строк, которые мы печатаем, чтобы получить то же самое.
Логично или (||)
Логично или (
) : Когда определенное условие оценивается к true, соответствующие условия (ы)/не оцениваются, поскольку они будут правдой, когда
Учитывая следующий фрагмент:
const name = null; let language; if (name) { language = name; } else { language = "JavaScript"; }
В фрагменте выше, я проверяю это Имя
имеет значение. Если это так, я назначаю значение Язык
, в противном случае я даю значение по умолчанию JavaScript
Отказ
Использование
const lanaguage = name || "JavaScript";
Несколько разницы в коде выше, за исключением того, что он короче. Это делает тот же чек на Имя
, предоставление значения по умолчанию, если Имя
не определен.
Операторская цепочка
Операторы ( &&
и
) могут быть связаны вместе, чтобы создать своего рода
Если ...
еще условие.
const username = Meteor.user() && Meteor.user().username || "code";
Это переводит на проверку наличия Meteor.user ()
Отказ Если true назначает Meteor.user (). Имя пользователя
к Имя пользователя
Переменная, иначе присваивается «Код»
к Имя пользователя
Отказ
Примечание. Использование цепочки оператора короткого замыкания не рекомендуется, так как это может сделать ваш код менее читаемым. Использование цепочки оператора запрещено в некоторых гидах стиля JavaScript.
Это приводит нас к концу этого поста. Я надеюсь, вы узнали что-то новое. Есть комментарий/вопрос? Пожалуйста, бросьте комментарий/предложение или вопрос в теме комментариев.