Что значит запись вида const { name } = value?

145
21 ноября 2018, 17:30

Увидел в описании использования одного из npm-пакетов запись вида const { NAME } = value. В JavaScript не профи, так что никак не могу понять/найти зачем эти скобки вокруг имени переменной и чем тогда это отличается от обычного const NAME = value?

Answer 1

Это называется деструктуризация, используется для более короткой записи

const {name} = value; // value = {name: ''}
name; // ''
// то же самое что и
const name = value.name;

Можно использовать в параметрах функции

const foo = ({prop}) => {}
foo({prop: 'prop'});

Для возвращения нескольких параметров из функции

const foo = () => ({var1: 1, var2: 2})
const {var1, var2} = foo();

Важно: имена переменных должны совпадать с ключами в объекте

const {name} = {prop: 1}; // name = undefined
// но если очень хочется:)
const {prop: name} = {prop: 1};
// name = 1

Так же работает с массивами

const [a, b] = [1, 2, 3, 4]; // a = 1, b = 2

Вот как теперь можно обменять значения двух переменных

let a = 1, b = 0;
[a, b] = [b, a];
READ ALSO
Подмена src в iframe для Ion Range Slider и RsForm

Подмена src в iframe для Ion Range Slider и RsForm

Есть калькулятор на RSForm и JSРаньше, когда изменения происходили просто по onchange или oninput какого-либо radio/checkbox, все работало приемлемо

204
Отсеивание элементов массива [дубликат]

Отсеивание элементов массива [дубликат]

На данный вопрос уже ответили:

128
Смена элементов

Смена элементов

Есть следующие элементы:

122
Клик на nth-child(n) jquery

Клик на nth-child(n) jquery

Есть структура

161