【正文】
{Array} children 子節(jié)點列表。 {String} text 名稱或用于顯示的字符串。 {Number|String} id 節(jié)點的唯一標識。自行擴展。下面是標準定義的可選節(jié)點列表,不在列表中的屬性必須(MUST)數(shù)據(jù)場景:鍵/值有序集合[ { name: BMW, value: 1 }, { name: Benz, value: 2, selected: true }]樹樹形數(shù)據(jù)用于表示層疊的數(shù)據(jù)結構??梢?MAY)包含name和value屬性。項常見的應用場景有單選復選框集合,下拉菜單等。使用v。為value, 值的屬性名杜絕(MUST NOT)必須(MUST)一個查詢姓名請求的返回數(shù)據(jù){ status: 0, data: Lily}鍵/值對象對于在一個JSON Object中表示鍵/值:可選的(OPTIONAL)client端參數(shù)錯誤的statusInfo簡單說明的statusInfo:{ status: 1, statusInfo: 參數(shù)錯誤}具有更多信息的statusInfo:{ status: 1, statusInfo: { text: 參數(shù)錯誤, parameters: { 電子郵件格式不正確 } }}datadata字段可以是除JSON Null之外的任意JSON類型,表示請求返回的數(shù)據(jù)主體??蛇x的(OPTIONAL)是一個JSON String或JSON Object,表示除了請求狀態(tài)外server端想要對status做出的說明,使client端能夠獲取更多信息進行后續(xù)處理。一個成功請求的status字段{ status: 0, data: hello world!}statusInfostatusInfo字段可以(SHOULD)非0:表示發(fā)生錯誤。被省略,省略時和為0時表示同一含義。這個字段必須(MUST)該Object可能包含3個字段:status,statusInfo,data。必須(MUST)charset=UTF8數(shù)據(jù)字段返回的數(shù)據(jù)包含在響應體中。如果是通過XMLHTTPRequest請求的數(shù)據(jù),并且字符編碼為UTF8時,可以不指定字符集。需要(SHOULD)ContentType中可以指定字符集。避免(MUST NOT)設置為text/javascript或text/plain。對于傳輸JSON數(shù)據(jù)的響應,ContentTypeContentTypeContentType字段定義了響應體的類型。通常JSON數(shù)據(jù)被用于通過XMLHttpRequest對象訪問,通過javascript進行處理。必須(MUST)Array(數(shù)組)為多個值的有序集合,數(shù)組元素間以逗號(,)分隔。不要(MUST NOT)name為String類型,value可以是任意類型的數(shù)據(jù)。復合數(shù)據(jù)類型Object是無序的集合,以鍵值對的方式保持數(shù)據(jù)。為兩端加上雙引號,否則可能產(chǎn)生不希望的后果(如if中判斷false的結果是true)。非字符串類型數(shù)據(jù)輸出時一定 Null通常用于表示空對象。 String表示一個字符串。 Boolean可以表示真假,值為true或false。 Number可以表示整數(shù)和浮點數(shù)。使用function、Date等js對象類型。必須(MUST)在下面章節(jié)中,JSON數(shù)據(jù)類型的表示法為JSON+空格+數(shù)據(jù)類型,如:JSON Array。 // why no default}// not good with empty blockif (condition) {}EJSON數(shù)據(jù)傳輸標準JSON數(shù)據(jù)類型JSON(JavaScript Object Notation)是一種輕量級,基于文本,語言無關的數(shù)據(jù)交換格式。}// goodswitch (condition) { case 1: case 2: ... break。 // good var that = this。function Person() { // not good var me = this。不允許有空的代碼塊。不要在一處使用多個Tab或Space。 var x = 1。不要在循環(huán)內部聲明函數(shù)。 }(i))。 i++) { (function(i) { nums[i] = function(j) { return i + j。for (var i = 0。數(shù)組中不要存在空元素。不要在一些不需要的地方加括號,例:delete()。}變量不要先使用后聲明。function test() { if (true) { var x = 0。}不要在內層作用域的代碼里聲明了變量,之后卻訪問了外層作用域的同名變量。) { ...}16. Jshint比較用‘==’,‘!=’。// not goodif (person == undefined) { ...}// goodif (typeof person == 39。if (a === null) { ...}15. Undefined永遠不要直接使用undefined進行變量判斷。14. Null使用場景:初始化一個將來可能被賦值為對象的變量與已經(jīng)初始化的變量做比較作為一個參數(shù)為對象的函數(shù)的調用傳參作為一個返回對象的函數(shù)的返回值不使用場景:不要用null來判斷函數(shù)調用時有無傳參不要與未初始化的變量做比較// not goodfunction test(a, b) { if (b === null) { // not mean b is not supply ... }}var a。var a = { b: 1