JavaScript 解析赋值

解析赋值 (从 ES6 开始)


let arr = ['A', 'B', 'C'];

// 如果是 es6 之前
let x = arr[0];
let y = arr[1];

// 从 es6 开始
let [x, y, z] = arr;
// 如果数组本身还有嵌套
let [x, [y, z]] = ['A', ['B', 'C']];
x;  // "A"
z;  // "C"
// 忽略某些元素
let [, , z] = ['alex', 'harry', 'jack'];  // 忽略前两个元素,只对 z 赋值第三个元素
z;  // "jack"

// 对对象使用解析赋值
let person = {
    name: 'alex',
    age: 26,
    address: {
        city: 'Chongqing',
        street: 'No.1 Road'
    }
};
let {name, address: {city, st}} = person;
name;  // "alex"
city;  // "Chongqing"
st;  // undefined  因为属性名是 street 而不是 st
// 注意: address 不是变量,而是为了让 city 和 st 获得嵌套的 address 对象的属性:
address; // Uncaught ReferenceError: address is not defined

// 如果已经提前申明了变量,然后想使用解析赋值时
let x, y;
({x, y} = {name: 'alex', x: 100, y: 200});

// 使用场景介绍
// 快速获取当前页面的域名和路径
let {hostname:domain, pathname:path} = location;
// 其实就是好比 let domain = location.hostname; let path = location.pathname;

ES6 对象字面量的增强写法

将变量批量赋值到变量中


let name = 'alex';
let age = 18;
let height = 1.88;

const obj = {
        name,
        age,
        height,
    }

打印结果为:
console.log(obj) => 
{
    name: 'alex',
    age: 18,
    height: 1.88
}

results matching ""

    No results matching ""