let obj = { a: {}, b: { a: 2 } }; let { a, ...aa } = obj; console.log(aa);
for in 去掉对象中为空的键值
1 2 3 4 5
for (const key in filter) { if (filter[key] === "") { delete filter[key]; } }
对象的键值不仅仅只是一个字符串
1 2 3 4 5 6 7 8 9 10 11
let user = { name: "wang", age: 20, }; let key = "name"; user[key]; //=> 输出wang
//key 可以是一个变量 let key = prompt("What do you want to know about the user?", "name"); //prompt 浏览器的输入弹窗 在输入后会返回输入的值给key(默认输入name) user[key]; //==> John(如果输入 "name")
我们对于变量的键值应该是灵活的使用
key 是一个变量可以通过变量的赋值进而改变对象的输出
对象内的计算属性
我们可以在对象字面量中使用方括号。这叫做 计算属性。
1 2 3 4 5 6 7
let key = prompt("What do you want to know about the user?", "name");
let user = { [key]: "wang", // 属性名是从 key 变量中得到的 };
alert(user.name); // 5 如果 key="name"
对象的属性判断是否存在
1 2
user.key === undefined 返回true表示不存在 “key” in user 返回true表示存在