Условный (тернарный) оператор является единственным оператором JavaScript, который принимает три операнда: условие, за которым следует вопросительный знак (?), выражение, которое следует выполнить, если условие истинно, и двоеточие (:), представляющее выражение, которое необходимо выполнить. если условие ложно. Этот оператор служит краткой альтернативой оператору «если еще».
Давайте рассмотрим пример, чтобы лучше понять его использование:
const person = { name: "JOE", address: { country: "India" } }; const validatedName = person.name ? "name exists" : "name doesn't exist"; const validatedAge = person.age ? "age exists" : "age doesn't exist"; console.log(`Person ${validatedName} and Person ${validatedAge}`); //Output Person name exists and Person age doesn't exist.
В приведенном выше примере person.name имеет значение, поэтому оно выполняет истинное утверждение, а person.age не определено, поэтому оно выполняет ложное утверждение.
Необязательный оператор цепочки (?.)
Необязательный оператор цепочки (?.) — это мощная функция, представленная в ES2020, которая значительно упрощает процесс доступа к глубоко вложенным значениям объектов в JavaScript. Предоставляя лаконичный способ обработки нулевых или неопределенных значений, этот оператор упрощает условные проверки и повышает читабельность кода. В этой статье мы рассмотрим функциональность оператора необязательной цепочки на практическом примере.
const person = { name: "JOE", address: { country: "India" } }; const country = person?.address?.country; const street = person?.address?.street; console.log(`Location of ${person.name} is ${country} and street is ${street}`); //Output Location of JOE is India and street is undefined
Нулевой оператор объединения (??)
Нулевой оператор объединения (??) — это оператор, представленный в ES2020, который предлагает практическое решение для установки значений по умолчанию при обнаружении «нулевых» или «неопределенных» значений в JavaScript. Он отличается от логического оператора ИЛИ (||) тем, что специально проверяет нуль или неопределенность, а не ложные значения, такие как пустые строки, 0, NaN или false.
В этой статье рассматривается использование нулевого оператора объединения на примере из реальной жизни, включающем уличную переменную, которая в настоящее время не определена.
const person = { name: "JOE", address: { country: "India" } }; const street = person?.address?.street ?? "Random"; console.log(`Location of ${person.name} is ${person?.address?.country} and street is ${street}`); //Output Location of JOE is India and street is Random
Заключение
В этой статье мы рассмотрели три мощных оператора — тернарный оператор (?), необязательную цепочку (?.) и нулевой оператор объединения (??), — которые могут значительно упростить и улучшить ваш код JavaScript.
Комбинируя эти операторы в своем коде, вы можете упростить сложную условную логику и изящно справиться с потенциальными ловушками при работе с вложенными объектами и значениями по умолчанию. Использование этих современных функций JavaScript не только делает ваш код более кратким, но также улучшает его удобство сопровождения и читабельность.
Удачного кодирования!