属性名
- 对象的属性名不强制要求遵守标识符的规范
- 但是我们使用时还是尽量按照标志符的规范
如果要使用特殊的属性名,不能采用 .
的方式来操作
需要使用另一种方式:
- 语法:对象[“属性名”] = 属性值
- 读取时也需要采用这种方式
使用var obj = new Object(); obj["123"] = "孙悟空"; // 因 123 是特殊的字符,不能直接使用 . 的方式,因使用 [] 包裹起来 obj.gender = "男"; obj.age = 18; console.log(obj["123"]);
[ ]
这种形式去操作属性,更加的灵活
在[ ]
中可以直接传递一个变量,这样变量值是多少就会读取那个属性 ```javascript var obj = new Object(); obj.name = “孙悟空”; obj.gender = “男”; obj.age = 18;
obj[“hello”] = “你好”; obj[“world”] = “世界”;
var n = “hello”; // 向对象中传递一个变量,变量值是什么,就会读取相对应的属性 console.log(obj[n]); // 你好 n = “world”; console.log(obj[n]) // 世界
<a name="BbF4s"></a>
## 属性值
- JS 对象的属性值,可以是任意的数据类型
- 甚至也可以是一个对象
```javascript
// 对象一
var obj = new Object();
obj.name = "孙悟空";
obj.gender = "男";
obj.age = 18;
// 对象二
var obj2 = new Object();
obj2.name = "猪八戒";
obj2.age = 20;
// 向对象中添加一个属性,将对象二作为属性值,传递给 test属性
obj.test = obj2; // 此时 test属性 存储的就是一个 对象
// 访问 test属性的name属性
console.log(obj.test.name); // 猪八戒
in 运算符
- 通过该运算符可以检查一个对象中是否含有指定的属性
- 如果有则返回 true,否则返回 false
语法:”属性名” in 对象
// 对象一
var obj = new Object();
obj.name = "孙悟空";
obj.gender = "男";
obj.age = 18;
// 对象二
var obj2 = new Object();
obj2.name = "猪八戒";
obj2.age = 20;
// 向对象中添加一个属性,将对象二作为属性的值,传递给 test 属性
obj.test = obj2; // 此时 test 存储的就是一个 对象
// 访问 test 对象 obj2 的 name属性
console.log(obj.test.name); // 猪八戒
// 检查 obj 对象中是否有 test属性
console.log("test" in obj); // false