# 对象

对象一般指的是 JSON ,这是一个非常简单且功能强大的数据结构。

var user = {
  userName: '石兴龙',
  password: 'abc123',
  weChart: 'guzhan321',
  getUserInfo: function() {
    return this.userName + '  ' + this.weChart
  }
}

一对 {...} 花括号,包裹起来的 key: value 结构就叫对象。 {...} 花括号中间的 key: value,叫属性。

我们不仅可以通过.操作符来访问属性,也可以用[key]方括号的方式来获取属性。

user.userName;    // 石兴龙
user['userName']; // 石兴龙

TIP

在 js 中,任何可以用 . 的地方 都可以用 [key] 方括号的方式代替

我们还可以随时 增加删除修改 属性

user['phone'] = '150xxxxxxxx'; // 石兴龙
delete user.phone
user.userName = '石兴龙 - javascript 全栈教程'

我们还可以判断某个属性是否已经存在。这里有三种方式

// 第一种
user.phone !== undefined;
// 第二种
'phone' in user;
// 第三种
user.hasOwnProperty('phone');

虽然有三种方法可以选择,但是你只能使用第三种方法。这牵扯到原型链方面的知识,之后我会详细讲

# JSON 对象的方法

JSON 对象只有这两个静态方法:JSON.parse()JSON.stringify(),但都非常有用。

# JSON.parse() 字符串JSON

var user = JSON.parse(`
  {
    "userName":"石兴龙",
    "password":"abc123",
    "weChart":"guzhan321"
  }
`); 
console.log(user.userName); // 石兴龙

# JSON.stringify() JSON字符串

var user = {
  userName: '石兴龙',
  password: 'abc123',
  weChart: 'guzhan321',
}
JSON.stringify(user); // {"userName":"石兴龙","password":"abc123","weChart":"guzhan321"}
JSON.stringify(user, null, 2); // 格式化好的字符串
/*
{
  "userName": "石兴龙",
  "password": "abc123",
  "weChart": "guzhan321"
}
*/
上次更新: 7/9/2020, 3:59:04 PM