Это _Опционаньная цепочка_ Она используеться для того чтобы исправить ошибку несусществояния например у нас есть объект но он пуст: let obj = {}; Выводим не существующое свойство: alert(obj.name); //undefined Но что если мы выведем сразу несколько не существующех свойств: alert(obj.name.age); //Ошибка //Obj.name - Возвращает undefined //Obj.name.age... - Возвращает Ошибку Мы можем это исправить с помощью условного оператора '?': // ?. Условный оператор // if, else, else if. Условное ветвление. alert(obj.name ? obj.name.age : undefined) Но этот код довольно неэлегантный и он дублируеться: Решением будет использувать побитовый оператор '&': alert(obj.name & obj.name.age) Но этот код все равно дублируеться: Вот и для этого есть _Опционаньная цепочка_ Решение: alert(x?.name?.age); Это роботает даже если объекта не существует
6:20 либо я что-то не так делаю, либо short circuit не работает let x = 10; let object = { num: 1, }; let res = object?.[x++]; console.log(res) // undefined в независимости от того, существует object или равен null, результат всегда undefined.
Блин, уменьшил скорость видео, увеличил громкость, 10 раз пересматривал момент с ?? и все равно не понял что говорит автор . То ли "нолижкалесен" то ли "нулєжкалессен" ... =(
Nullish Coalescing - это совершенно брутальное название для оператора "??" - два знака вопроса, который подставляет значение по-умолчанию, если левый операнд null или undefined. Скоро залью про него видео.
Nullish Coalescing - более строгая версия двойного пайпа ||, отличие в том что у двойного пайпа больше кейсов ухода а правую часть выражения, например если слева будет 0 или false.
После курса реакт+редукс, я тебя с полуслова узнаю...
const {author:{profile:{picture}=0}=0} = post
Отличное видео. Всегда интересно послушать про новый синтаксис 👍
Спасибо вам за ваши видео, надеюсь вы продолжите их снимать. У вас отлично получается доносить информацию)
Это _Опционаньная цепочка_ Она используеться для того чтобы исправить ошибку несусществояния например у нас есть объект но он пуст:
let obj = {};
Выводим не существующое свойство:
alert(obj.name); //undefined
Но что если мы выведем сразу несколько не существующех свойств:
alert(obj.name.age); //Ошибка
//Obj.name - Возвращает undefined
//Obj.name.age... - Возвращает Ошибку
Мы можем это исправить с помощью условного оператора '?':
// ?. Условный оператор
// if, else, else if. Условное ветвление.
alert(obj.name ? obj.name.age : undefined)
Но этот код довольно неэлегантный и он дублируеться:
Решением будет использувать побитовый оператор '&':
alert(obj.name & obj.name.age)
Но этот код все равно дублируеться:
Вот и для этого есть _Опционаньная цепочка_
Решение:
alert(x?.name?.age);
Это роботает даже если объекта не существует
Даёшь больше таких уроков
А когда будет видос про Nullish Coalescing?
Идеально!
6:20 либо я что-то не так делаю, либо short circuit не работает
let x = 10;
let object = {
num: 1,
};
let res = object?.[x++];
console.log(res) // undefined
в независимости от того, существует object или равен null, результат всегда undefined.
название видео хорошее, не так то просто найти поиском "?."
Блин, уменьшил скорость видео, увеличил громкость, 10 раз пересматривал момент с ?? и все равно не понял что говорит автор . То ли "нолижкалесен" то ли "нулєжкалессен" ... =(
Сейчас автор пересмотрит и точно скажет :)
Nullish Coalescing - это совершенно брутальное название для оператора "??" - два знака вопроса, который подставляет значение по-умолчанию, если левый операнд null или undefined. Скоро залью про него видео.
Nullish Coalescing - более строгая версия двойного пайпа ||, отличие в том что у двойного пайпа больше кейсов ухода а правую часть выражения, например если слева будет 0 или false.
@@Andrey-il8rh По приведенным вами отличиям "более строгой" версией являеться таки двойной пайп)
@@tasatko что значит "более строгой" ?