Увидел в описании использования одного из 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];
Комментариев нет:
Отправить комментарий