首頁  >  文章  >  web前端  >  javascript學習筆記(六)資料類型和JSON格式_基礎知識

javascript學習筆記(六)資料類型和JSON格式_基礎知識

WBOY
WBOY原創
2016-05-16 16:34:471423瀏覽

什麼是JSON

JSON:JavaScript 物件表示法(JavaScript Object Notation)。

JSON的形式是用大括號「{}」包圍起來的項目列表,每一個項目間用逗號(,)分隔,而項目就是用冒號(:)分隔的屬性名稱和屬性值。這是典型的字典表示形式,也再次顯示javascript裡的物件就是字典結構。不管多麼複雜的對象,都可以用一句JSON程式碼來建立並賦值。

JSON 結構

JSON有兩種結構

json簡單說就是javascript中的物件和數組,所以這兩種結構就是物件和陣列兩種結構,透過這兩種結構可以表示各種複雜的結構

1、物件:物件在js中表示為「{}」括起來的內容,資料結構為{key:value,key:value,...}的鍵值對的結構,在物件導向的語言中,key為物件的屬性,value為對應的屬性值,所以很容易理解,取值方法為物件.key 取得屬性值,這個屬性值的型別可以是數字、字串、陣列、物件幾種。

2、陣列:數組在js中是中括號「[]」括起來的內容,資料結構為["java","javascript","vb",...],取值方式和所有語言中一樣,使用索引獲取,欄位值的類型可以是數字、字串、陣列、物件幾種。
經過物件、陣列2種結構就可以組合成複雜的資料結構了。

JSON 語法規則

JSON 語法是 JavaScript 物件表示法語法的子集。

資料在名稱/值對中
資料以逗號分隔
花括號保存物件
方括號保存數組
JSON 值可以是:

數字(整數或浮點數)
字串(在雙引號中)
邏輯值(true 或 false)
數組(在方括號中)
物件(在花括號中)
null

1) 並列的資料之間以逗號(", ")分隔。

2) 映射以冒號(": ​​")表示。

3) 並列資料的集合(陣列)以方括號("[]")表示。

4) 映射的集合(物件)以大括號("{}")表示。
JSON例子

建立沒有任何屬性的物件:

複製程式碼 程式碼如下:

var obj = {};

建立一個物件並設定屬性和初始值:

複製程式碼 程式碼如下:

var author = {name : "trigkit4",age : 21 , sex : "male"};

建立一個物件並設定屬性和方法:

複製程式碼 程式碼如下:

var hello ={content:"how are you?" , say :function(){alert(this.content)} };

建立一個巢狀其他物件和物件陣列等:

複製程式碼 程式碼如下:

var company = {name:"Apple",
               product:"iPPhone",
               chairman:{name:"Tim Cook",age:54},
               employees:[{name:"Jony Ive",age:47},{name:"Lili",age:29}],
 };

物件是一套無序的名/值對,一個物件以左邊分支開始,以右邊分支結束


一個值可以是用雙引號括起來的字串,或是一個數值,一個true or false ,一個陣列或一個物件

資料型態:

從結構上看,所有的資料(data)最終都可以分解成三種類型:

第一種類型是標量(scalar),也就是一個單獨的字串(string)或數字(numbers),例如"北京"這個單獨的字。

第二種類型是序列(sequence),也就是若干個相關的資料按照一定順序並列在一起,又叫做數組(array)或列表(List),例如"北京,上海"。

第三種類型是映射(mapping),也就是一個名/值對(Name/value),即資料有一個名稱,還有一個與之相對應的值,這又稱為散列(hash )或字典(dictionary),如"首都:北京"。
在程式語言中,只要有了陣列(array)和物件(object)就能夠儲存一切資料了。

陣列和物件的另一個差異是,陣列的資料沒有"名稱"(name),物件的資料有"名稱"(name)。

JavaScript中有5種簡單資料型別(也稱為基本資料型別):Undefined、Null、Boolean、Number和String。還有1種複雜資料類型-Object,Object本質上是由一組無序的名值對所組成的。

對一個值使用typeof運算子可能會傳回下列某個字串:

  ● "undefined"--如果這個值未定義;

  ● "boolean"--如果這個值是布林值;

  ● "string"--如果這個值是字串;

  ● "number"--如果這個值是數值;

  ● "object"--如果這個值是物件或null;

  ● "function"--如果這個值是函數;

Undefined類型:

    `Undefined`類型只有一個值,在使用var宣告變數但未對其加以初始化時,
這個變數的值就是undefined
Null類型

  Null型別是第二個只有一個值的資料型別,這個特殊的值是null。從邏輯角度來看,null值表示一個空物件指針,而這也正是使用typeof運算子偵測null時會返回"object"的原因,例如:

複製程式碼 程式碼如下:

var car = null;
alert(typeof car); // "object"

Number型

  這種型別用來表示整數和浮點數值,還有一個特殊的數值,即NaN(非數值 Not a Number)。這個數值用來表示一個本來要傳回數值的運算元未傳回數值的情況(這樣就不會拋出錯誤了)。

String類型

  String類型用來表示由零或多個16位元Unicode字元組成的字元序列,即字串。字串可以由單引號(')或雙引號(")表示。
數值、布林值、物件和字串值都有toString()方法。但null和undefined值沒有這個方法。

  多數情況下,呼叫toString()方法不必傳遞參數。但是,在呼叫數值的toString()方法時,可以傳遞一個參數:輸出數值的基數。

複製程式碼 程式碼如下:

var num = 10;
alert(num.toString());      //"10"
alert(num.toString(2));     //"1010"
alert(num.toString(8));     //"12"
alert(num.toString(10));    //"10"
alert(num.toString(16));    //"a"

在不知道要轉換的值是不是null或undefined的情況下,還可以使用轉型函數String(),這個函數能夠將任何類型的值轉換為字串。 String()函數遵循下列轉換規則:

  ● 如果值有toString()方法,則呼叫該方法(沒有參數)並傳回對應的結果

  ● 如果值是null,則回傳"null"

  ● 如果值是undefined,則回傳"undefined"

Object類型

  物件其實就是一組資料和功能的集合。物件可以透過執行new操作符後接要建立的物件類型的名稱來建立。而建立Object類型的實例並為其新增屬性和(或)方法,就可以建立自訂物件。

var o = new Object();
typeof 操作符

複製程式碼 程式碼如下:


Json線上解析

Json線上解析:http://json.tongxiehui.net/

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn