Во многих языках программирования, таких как C# или PHP, существует так называемый «оператор объединения с null». Этот оператор позволяет упростить код, заменяя выражения условий на более короткую и удобную форму.
Допустим, есть переменная, которая может быть null
, и в случае, если она null
, нужно присвоить ей какое-то другое значение.
В C# это выглядит так:
String someString = null; var whatIWant = someString ?? "Cookies!";
В JavaScript до недавнего времени для достижения подобного эффекта приходилось использовать условный (тернарный) оператор:
var someString = null; var whatIWant = someString ? someString : 'Cookies!';
Однако, начиная с версии ES2020 в JavaScript появился аналог оператора объединения с null из других языков — это оператор «опциональной цепочки» (optional chaining) ??
.
Теперь, код на JavaScript для аналогичной задачи может выглядеть так:
var someString = null; var whatIWant = someString ?? 'Cookies!';
Оператор ??
возвращает первый аргумент, если он не null
и не undefined
, в противном случае возвращает второй аргумент.
Важно отметить, что оператор ??
в JavaScript отличается от оператора ||
. Оператор ||
возвращает второй аргумент, если первый аргумент является «ложным» (false
, 0
, ""
, null
, undefined
, или NaN
). Оператор ??
, в свою очередь, возвращает второй аргумент только если первый является null
или undefined
.
Таким образом, оператор ??
в JavaScript позволяет писать более чистый и наглядный код при работе с потенциально отсутствующими значениями.
Добавить комментарий