对象
计算属性
如果想在创建对象时,使用动态的属性名称,可以使用方括号包裹,就像在访问对象时那样。
let fruit = "apple";
let prices = {[fruit]: 5,
}
属性值简写
如果对象的属性名称是已存在的变量,而其值就是这个已存在的变量的值时,可以:
function makeUser(name, age) {
return {
name,
age,
}
}
属性名简写方式和正常方式可以混用
属性名限制
属性名 __proto__
被赋值为非对象值时,不会生效。
let obj = {}; // 不生效
obj.__proto__ = 5; // 不生效
obj.__proto__ = undefined; // 不生效
obj.__proto__ = false; // 不生效
obj.__proto__ = "word"; // 不生效
obj.__proto__ = Symbol('dd'); // 不生效
属性存在性与 in 操作符
访问 JavaScript 对象不存在的属性是,不会报错,只是得到 undefined
。
let obj = {};
user.age === undefined; // true 意思是没有这个属性
操作符 “in”语法是:
"key" in object
左边的属性名必须带引号,否则视为一个变量,判断时,key 是这个变量的值。
let user = { name: "John", age: 30 };
let prop = "age"
"age" in user; // true
prop in user; // true
之所以会有 “in”操作符,是因为当属性对应的值就是 “undefined” 时。
不过,实际代码中通常使用 “null” 表示未知的值或空值(不管是不是对象类型)。
let sum = 0;
let b = {
... 7: 1,
... "+7": 2,
... "-7" : 3,
}
for (k in b) {
sum += +k;
}
// sum = 7
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论。