Рубрики
Без рубрики

Разрушение объектов JavaScript со значением по умолчанию

Узнайте, как назначить значения по умолчанию объекту JavaScript прямо во время их распаковки. Tagged with JavaScript, ES6, объекты.

Первоначально опубликовано в https://varundey.me/blog/destructuring-and-default-values/

Разрушение, представленное в JavaScript ES6, является изящным трюком для выкупа свойств непосредственно из объекта в качестве переменных.

const obj = {
    a:1,
    b:2,
    c:3
};

const {a, b, c} = obj;

console.log(a, b, c); // 1 2 3

Destructure и назначить значения по умолчанию – наивный путь

Но что Если вам нужно сделать проверку проверки на ваши деструктурированные свойства перед выполнением какой -либо операции

const {a, b, c} = obj;

if(typeof a === 'undefined'){
    // assign a to something
}

if(typeof b === 'undefined'){
    // assign b to something
}

if(typeof c === 'undefined'){
    // assign c to something
}

// start the actual work

Destructure и назначить значения по умолчанию – javaScript Way

Хотя это работает отлично, но это скучно и избыточно. Что если бы мы могли использовать значения по умолчанию (точно так же, как аргументы по умолчанию в функциях) прямо во время разрушения объектов, чтобы наше распакованное свойство никогда не было неопределенное Анкет

const obj = {a: 1, b: 2};

const {
    a = 'foo',
    b = 'bar',
    c = 'baz',
} = obj;

console.log(a, b, c); // 1 2 baz

Легко, верно? Вам просто нужно назначить значения как и когда вы их распаковываете.

Destructure, переименование и назначение значений по умолчанию

Аккуратный! Но что, если мы хотим переименовать параметр и Установить значение по умолчанию? Обращать внимание.

const obj = {a: 1, b: 2};

const {
    a: A="foo",
    b: B="bar",
    c: C="baz"
} = obj;

console.log(A, B, C); // 1 2 baz

Сбивает с толку? Бьюсь об заклад. Вот шаги к этому.

  • Сначала мы разрушаем свойства объекта
const {a, b, c} = obj;
  • Далее мы назначаем переменные этим свойствам
const {a: A, b: B, c: C} = obj;
  • После этого назначьте значение по умолчанию как то, как мы это сделали в предыдущем примере
const {a: A="foo", b: B="bar", c: C="baz"} = obj;

И там у тебя это есть. Добавление значений по умолчанию правильно во время распаковки объектов.

Предостережения

Обратите внимание, что деструкция со значением по умолчанию работает только тогда, когда нет свойств для распаковки в объекте, то есть свойство неопределенное Анкет Это означает, что JavaScript относится к NULL , ложный , 0 или другие фальшивые значения как действительное свойство и не присваивают им значение по умолчанию.

const obj = {a: null, b: false, c: 0};

const {
    a = 1,
    b = 2,
    c = 3,
    d = 4
} = obj;

console.log(a, b, c, d); // null false 0 4

Я надеюсь, что это было информативно и поможет вам, когда вам нужно сделать что -то подобное. Дайте мне знать, что вы думаете об этом посте в комментариях ниже. ✌

Оригинал: “https://dev.to/varundey/destructuring-javascript-objects-with-default-value-2765”