Страницы

Поиск по вопросам

понедельник, 8 апреля 2019 г.

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

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


Ответ

Это называется деструктуризация, используется для более короткой записи
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];

Комментариев нет:

Отправить комментарий