1. 程式人生 > >JavaScript 面向物件之一 —— 物件(物件與JSON的區別)

JavaScript 面向物件之一 —— 物件(物件與JSON的區別)

本系列文章根據《愛前端邵山歡老師深入淺出的js面向物件》視訊整理歸納

物件與JSON的區別

JSON 就是 JavaScript object notation ,JavaScript 物件表示法。是 JavaScript 物件的嚴格子集。

JSON 要求所有的鍵必須加雙引號,而 JavaScript 物件不要求雙引號。

標準JSON格式:

var obj = {
    "name" : "張鑫""age" : 25,
    "sex" : "男"
}

JavaScript物件:

var obj = {
    name : "張鑫"
, age : 25, sex : "男" }

JSON 規定必須加引號的原因

因為 JSON 是一個數據交換格式,作為 HTML 與 PHP、JAVA等後臺語言的資訊交換媒介。後臺工程師從資料庫中得到資料,組建 JSON ,前臺通過 Ajax 獲取 JSON 並解析,組建頁面。(所以是其它後臺語言在組建 JSON 時要求加引號,否則報錯,並非JavaScript要求的。)JSON天生為通訊而生。

但是 JavaScript 中有一種鍵必須加引號,就是不符合識別符號命名規範的鍵,必須加引號,否則報錯。如

var obj = {
    "-" : 12,
    "@@@"
: 135, "2017" : 568 }

訪問屬性時,必須加引號,用方括號表示法:

obj["2017"]

如果我們用變數儲存一個 key,此時 必須用方括號訪問,並且 方括號中不能有引號。如:

var obj = {
    "2017" : 1,
    "key" : 2
}
var key = 2015 + 1 + 1;
console.log(obj[key]);   // 1
console.log(obj["key"]); // 2
console.log(obj.key);    // 2

點語法只能以字串形式訪問物件中的鍵,無法使用變數訪問