- 对象是具有一些特殊特性的关联数组。
- 它们存储属性(键值对),其中:
- 属性的键必须是字符串或者 symbol(通常是字符串)。
- 值可以是任何类型。
- 我们可以用下面的方法访问属性:
- 点符号:
obj.property。
- 方括号
obj["property"],方括号允许从变量中获取键,例如 obj[varWithKey]。
- 其他操作:
- 删除属性:
delete obj.prop。
- 检查是否存在给定键的属性:
"key" in obj。
- 遍历对象:
for(let key in obj) 循环。
- JavaScript 的对象有一个需要注意的特性:能够被访问任何属性。即使属性不存在也不会报错!读取不存在的属性只会得到
undefined。
练习题
<script>
let salaries = {
John: 100,
Ann: 160,
Pete: 130
}
//写一段代码求出我们的工资总和,将计算结果保存到变量 sum。从所给的信息来看,结果应该是 390。
//如果 salaries 是一个空对象,那结果就为 0。
let sum = 0;
for (let key in salaries){
sum+= salaries[key];
}
alert(sum)
</script>
let menu = {
width: 200,
height: 300,
title: "My menu"
};
//创建一个 multiplyNumeric(obj) 函数,把 obj 所有的数值属性值都乘以 2。
function multiplyNumeric(obj) {
for (let key in obj) {
if (typeof obj[key] == 'number') {
obj[key] *= 2;
}
}
}