对象和JSON

2017-08-30  本文已影响14人  YM雨蒙

对象

所谓对象,就是一种无序的数据集合,由若干个“键值对”(key-value)构成

创建对象

var obj = new Object()
var obj = {}  //字面量

属性和方法

var car = {
  color: "red",
  run: function(){alert("run")}
}
car.color  //"red"
car.run  //ƒ (){alert("run")}
car["color"]  //"red"

var o = {
  key1: 1,
  key2: 2
};

Object.keys(o);
// ['key1', 'key2']

obj.constructor

var car = {
  color: "red",
  run: function(){alert("run")}
}
car.constructor  //ƒ Object() { [native code] }

var num = new Number(123)
num.constructor  //ƒ Number() { [native code] }

obj.toString()

var num = new Number(123)
num.toString()  //"123"

obj.valueOf()

var num = new Number(123)
num.valueOf()  //123

obj.hasOwnProperty()

var car = {
  color: "red",
  run: function(){alert("run")}
}
car.hasOwnProperty("color")  //true
car.hasOwnProperty("logo")  //false

JSON

JSON 格式(JavaScript Object Notation 的缩写)是一种用于数据交换的文本格式

JSON 对值的类型和格式有严格的规定。

以下是合格的 JSON 值。

["one", "two", "three"]
{ "one": 1, "two": 2, "three": 3 }
{"names": ["张三", "李四"] }
[ { "name": "张三"}, {"name": "李四"} ]

以下是不合格的 JSON 值。

{ name: "张三", 'age': 32 }  // 属性名必须使用双引号
[32, 64, 128, 0xFFF] // 不能使用十六进制值
{ "name": "张三", "age": undefined } // 不能使用undefined
{ "name": "张三",
  "birthday": new Date('Fri, 26 Aug 2011 07:13:10 GMT'),
  "getName": function() {
      return this.name;
  }
} // 不能使用函数和日期对象

JSON.parse()

var userJson = '{\
            "id": 1,\
            "nick": "春鸟秋虫",\
            "avatar": "1.jpg",\
            "tags": null,\
            "authed": false\
        }';
var user = JSON.parse(userJson);

JSON.stringify()

JSON.stringify('abc') // ""abc""
JSON.stringify(1) // "1"
JSON.stringify(false) // "false"
JSON.stringify([]) // "[]"
JSON.stringify({}) // "{}"

JSON.stringify([1, "false", false])
// '[1,"false",false]'

JSON.stringify({ name: "张三" })
// '{"name":"张三"}'
上一篇下一篇

猜你喜欢

热点阅读