const user = ['朱老师', 'zls@qq.com'];
console.log(user);
// 为数组中的每一个成员,绑定一个变量
let username = user[0];
let useremail = user[1];
console.log(username, useremail);
// es6
// 1. 数组解构
// 模板 = 数组
let [name, email] = ['朱老师', 'zls@qq.com'];
// let name = '朱老师';
// let email = 'zls@qq.com'
console.log(name, email);
[name, email] = ['张老师', 'zhang@qq.com'];
console.log(name, email);
// 参数不足: 默认值
[name, email, age = 20] = ['张老师', 'zhang@qq.com'];
console.log(name, email, age);
// 参数过式: 剩余参数 ...
[name, email, ...arr] = ['张老师', 'zhang@qq.com', 30, 34567];
console.log(name, email, arr);
// 对象解构
// 模板 = 对象
let obj = {
id: 1,
lesson: 'js',
score: 80,
};
console.log(obj.id);
// console.log(id);
console.log(obj.score);
// console.log(score);
let {
id,
lesson,
score
} = {
id: 1,
lesson: 'js',
score: 80,
};
console.log(id);
console.log(lesson);
// 更新报错
// 使用圆括号 ,包含完整的赋值表达式,不能只包左边的模板
({
id,
lesson,
score
} = {
id: 2,
lesson: 'node',
score: 90,
});
console.log(id, lesson);
// 没用解构
function getUser(obj) {
return `id: ${obj.id}, lesson: ${obj.lesson}, score: ${obj.score}`;
}
console.log(getUser(obj));
// 将函数的参数转为对象的一个模板,进行解构
function getUser({
id,
lesson,
score
}) {
// 这样的话,在函数中, 就可以直接使用解构后的变量来访问对象的属性了
return `id: ${id}, lesson: ${lesson}, score: ${score}`;
}
console.log(getUser(obj));