属性名

  • 对象的属性名不强制要求遵守标识符的规范
  • 但是我们使用时还是尽量按照标志符的规范

如果要使用特殊的属性名,不能采用 . 的方式来操作
需要使用另一种方式:

  • 语法:对象[“属性名”] = 属性值
  • 读取时也需要采用这种方式
    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