ES6-Деконструкция и присвоение объектов

ES6-Деконструкция и присвоение объектов

Как и массивы, объекты также можно деструктурировать.

let {name, age} = {name: 'jisoo',  age:25};
console.log(name);//'jisoo'
console.log(age);//25

Однако существует разница между деструктурирующим назначением объекта и деструктурирующим назначением массива. Элементы массива расположены по порядку, а значение переменной определяется ее положением, а атрибуты объекта имеют нет порядка. Имя переменной должно совпадать с именем атрибута. Правильное значение.

let {job, salary}={salay: 20000, job: 'doctor'};
console.log(salary);//20000
consol.log(job);//'doctor'

Как и в случае с массивами, undefined будет возвращено, если значение недоступно.

let {gender}={sex: 'female', level: 'boss'};
console.log(gender);//undefined

Назначение деконструкции объекта является сокращением для следующего кода let {foo: foo , bar: bar} = {foo: 'aaa', bar: 'bbb'}, то есть внутренний механизм назначения деконструкции объекта состоит в том, чтобы сначала найти атрибут с тем же именем, а затем присвоить его соответствующей переменной. Последний фактически назначается вместо первого , как показано в следующем коде Show:

let obj = {first: 'hello', last: 'world'};
let {first: f, last: l}=obj;
console.log(f);//first
console.log(l);//last
console.log(first);//Error(first is not defined)

Как и массивы, деструктуризация также может использоваться для объектов с вложенными структурами.

        let obj1 = {
            p: ['hello', {
                y: 'world'
            }]
        };
        let {
            p: [x, {
                y
            }]
        } = obj1;
        console.log(x); //'hello'
        console.log(y); //'world'

При деконструкции объекта также можно использовать значение по умолчанию. Условием для вступления в силу значения по умолчанию является то, что свойство объекта строго равно неопределенному.

        var {
            x3 = 3
        } = {
            x: undefined
        };
        console.log(x3); //3
        var {
            x4 = 3
        } = {
            x4: null
        }
        console.log(x4); //null

Поскольку массив является особым объектом, он может деконструировать свойство объекта массива.

        let arr = [1, 2, 3];
        let {
            0: first1,//0号索引
            [arr.length - 1]: last1//2号索引
        } = arr;
        console.log(first1); //1
        console.log(last1); //3

рекомендация

отblog.csdn.net/Angela_Connie/article/details/110998252