第一种
var ourMusic = [
{
"artist": "Daft Punk",
"title": "Homework",
"release_year": 1997,
"formats": [
"CD",
"Cassette",
"LP" ],
"gold": true
}
];第二种
var myObj = {
top: "hat", 这个top和bottom没有加“”
bottom: "pants"
};
myObj.hasOwnProperty("top"); // true
myObj.hasOwnProperty("middle"); // false请问这两种情况都是对象的属性, 但为什么第一种中的属性都加了“”
而第二种里的没有?求解!
var ourMusic = [
{
"artist": "Daft Punk",
"title": "Homework",
"release_year": 1997,
"formats": [
"CD",
"Cassette",
"LP" ],
"gold": true
}
];第二种
var myObj = {
top: "hat", 这个top和bottom没有加“”
bottom: "pants"
};
myObj.hasOwnProperty("top"); // true
myObj.hasOwnProperty("middle"); // false请问这两种情况都是对象的属性, 但为什么第一种中的属性都加了“”
而第二种里的没有?求解!
第一种是json格式的数据,在标准的json格式数据中属性名必须加双引号。如用JSON.parse()解析json格式的数据时不加双引号会出错。
第二种是js代码中的对象字面量,在对象字面量中属性名如果符合js标识符的语法可以不加引号。当然加引号也是可以的。也就是说,json格式的数据可以直接放到js代码中当成对象字面量来用,但js中的对象字面量代码却不一定能直接当成json格式的数据来用。