JavaScript學習總結(六)資料型別和JSON格式
什麼是JSON
JSON
:JavaScript 物件表示法(J
avaS
cript O
bject N
otation)。
JSON
的形式是用大括號“{}”
包圍起來的專案列表,每一個專案間用逗號(,)分隔,而專案就是用冒號(:)分隔的屬性名和屬性值。這是典型的字典表示形式,也再次表明javascript
裡的物件就是字典結構。不管多麼複雜的物件,都可以用一句JSON
程式碼來建立並賦值。在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
除以上6種外,再無其他,沒有像js一樣的undefined、NAN
1) 並列的資料之間用逗號(", ")分隔。 2) 對映用冒號(": ")表示。 3) 並列資料的集合(陣列)用方括號("[]")表示。 4) 對映的集合(物件)用大括號("{}")表示。
物件是一套無序的名/值對,一個物件以左邊分支開始,以右邊分支結束
一個值可以是用雙引號括起來的字串,或者是一個數值,一個true or false
,一個陣列或者一個物件
JSON與物件字面量
在程式語言中,字面量是一種表示值的記法。
JSON
規定鍵-值對中的鍵
必須用雙引號! 引號。例如:
{"first name" : "Mike"};
在JSON
字串中,不能使用函式或者正規表示式字面量
資料型別:
從結構上看,所有的資料(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 操作符
<script type="text/javascript"> var s = "Nicholas"; var b =true; var c = 21; var u; var n = null; var o = {}; var obj = new Object;//最好寫出new object()形式 alert(typeof s);//string alert(typeof b);//boolean alert(typeof c);//number alert(typeof u);//undefined alert(typeof n);//object alert(typeof o);//object alert(typeof obj);//object </script>
Json線上解析
Json線上解析:http://json.tongxiehui.net/
JavaScript學習系列文章目錄
- JavaScript學習總結(一)基礎部分
- JavaScript學習總結(二)陣列和物件部分
- JavaScript學習總結(三)BOM和DOM詳解
- JavaScript學習總結(四)function函式部分
- JavaScript學習總結(五)原型和原型鏈詳解
- JavaScript學習總結(六)資料型別和JSON格式
- JavaScript學習總結(七)Ajax和Http狀態字
- JavaScript學習總結(八)正規表示式
- JavaScript學習總結(九)事件詳解
相關文章
- JavaScript資料型別轉換總結JavaScript資料型別
- 深入學習JavaScript資料型別JavaScript資料型別
- Python3學習(基本資料型別-集合-字典-基本資料型別總結)Python資料型別
- JavaScript學習之資料型別(1)JavaScript資料型別
- JavaScript基本型別總結JavaScript型別
- JS 資料型別總結JS資料型別
- Python str型別學習總結(一)Python型別
- 學習javascript資料結構與演算法(六)——圖JavaScript資料結構演算法
- Python的資料型別總結Python資料型別
- Go 的資料型別總結Go資料型別
- JavaScript - 資料型別JavaScript資料型別
- JavaScript 資料型別JavaScript資料型別
- JavaScript資料型別JavaScript資料型別
- MySQL JSON資料型別操作MySqlJSON資料型別
- JSON 資料型別(轉載)JSON資料型別
- Mysql支援的資料型別(總結)MySql資料型別
- go 基礎總結 --- 資料型別Go資料型別
- 腦圖學習 JavaScript 之犀牛書【三 · 一】資料型別JavaScript資料型別
- 可變資料型別(mutable)與不可變資料型別(immutable)總結資料型別
- 【Python學習教程】Python六大資料型別,你知道嗎?Python大資料資料型別
- JavaScript變數型別檢測總結JavaScript變數型別
- 學習JavaScript資料結構(一)——棧和佇列JavaScript資料結構佇列
- JavaScript基本資料型別之undefined和nullJavaScript資料型別UndefinedNull
- Python學習之資料型別Python資料型別
- TypeScript學習(一)—— 資料型別TypeScript資料型別
- Mybatis讀取和儲存json型別的資料MyBatisJSON型別
- JS基礎總結(1)——資料型別JS資料型別
- Redis中 HyperLogLog資料型別使用總結Redis資料型別
- JavaScript基本資料型別JavaScript資料型別
- javaScript的資料型別JavaScript資料型別
- 資料結構學習總結--圖資料結構
- 學習Java第六週總結Java
- C#學習筆記--複雜資料型別、函式和結構體C#筆記資料型別函式結構體
- 學習 JavaScript 資料結構(二)——連結串列JavaScript資料結構
- sql學習(mysql)(1)資料型別MySql資料型別
- 資料型別 - Go 學習記錄資料型別Go
- js學習之路3: 資料型別JS資料型別
- Python學習 —— 內建資料型別Python資料型別
- Python學習教程:基本資料型別Python資料型別