99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

深入理解JavaScript系列(7)

2018-06-09 15:57 更新

本文是深入理解JavaScript系列的第篇讀文筆記,博客原文在這里。

內(nèi)容簡要

鑒于JSON數(shù)據(jù)格式的越來越流行,但是JSON對(duì)象JSON字符串這兩種概念往往又會(huì)被人混淆。所以本篇文章就是對(duì)相關(guān)內(nèi)容的闡述。

BACKBONE

數(shù)據(jù)類型的分類

現(xiàn)在比較流行的網(wǎng)絡(luò)數(shù)據(jù)交換格式包括:JSON,YAML以及日薄西山的XML。

從結(jié)構(gòu)上看,所有的數(shù)據(jù)最后都可以分解成三個(gè)基本類型,

  1. 標(biāo)量(scalar),也就是一個(gè)單獨(dú)的字符串(String)或者數(shù)字(Number)。比如”beijing”這個(gè)單獨(dú)的詞。
  2. 序列(sequence),也就是若干個(gè)相關(guān)的數(shù)據(jù)按照一定的順序組合在一起。又叫做數(shù)組(Array)或者列表(List)。比如”beijing,shanghai”。
  3. 映射(mapping),也就是一個(gè)鍵值對(duì)(key:value),即數(shù)據(jù)有一個(gè)名稱,還有一個(gè)與之對(duì)應(yīng)的值。這個(gè)又稱作散列(Hash)或者字段(Dictionary)。比如”首都:北京”。

此部分內(nèi)容參考自數(shù)據(jù)類型和Json格式。

可見數(shù)據(jù)構(gòu)成的最小單位是非常簡單的,而JSON正式完美的符合了這三種最基本的數(shù)據(jù)構(gòu)成單元。

JavaScript中字面量的含義

在JavaScript中,我們經(jīng)常會(huì)聽到這樣一個(gè)詞,JSON字面量,對(duì)象字面量,字符串字面量等等,他們究竟是什么意思呢?

引用developer.mozilla.org中的說法,字面量就是

  1. 固定的值,讓你從“字面上”理解其含義。
  2. 字符串字面量是由雙引號(hào)("")或者單引號(hào)('')括起來的零個(gè)或多個(gè)字符。
  3. 對(duì)象字面量是由大括號(hào)({})括起來,擁有零個(gè)或多個(gè)鍵值對(duì)。

比如下面的代碼,

// 這些都是字面量
var a = 1;
var name = 'puck';
var puck = {
    name: 'puck',
    age: 20
};

JSON字符串和JSON對(duì)象

首先,JSON有非常嚴(yán)格的語法,如下,

{
    "key": "value"
}

其中,鍵和值都必須要用雙引號(hào)括起來,不用或者使用單引號(hào)都是不行滴。

從某種意義上說,JSON字符串終歸是字符串,也就是說JSON字符串是字符串的子集,不過JSON字符串滿足這樣的條件: JSON字符串可以被正確的反序列化成JSON對(duì)象。

而JSON對(duì)象與普通的JavaScript對(duì)象卻不是那么好區(qū)分,要看對(duì)象所在的上下文場景??聪旅娴拇a,

// JSON字符串
var puck = '{"name": "puck", "age": 20}';
// 字面量對(duì)象,這里我們可以簡單將其看成是一個(gè)JSON對(duì)象
var puck2 = {
    "name": "puck2",
    "age": 20
};

真正的JSON對(duì)象

從嚴(yán)格意義上來說,滿足JSON語法的普通JavaScript字面量對(duì)象并不是JSON對(duì)象。兩者是完全不一樣的概念。

在新版的瀏覽器里JSON對(duì)象已經(jīng)被原生的內(nèi)置對(duì)象了,目前有2個(gè)靜態(tài)方法:JSON.parse用來將JSON字符串反序列化成對(duì)象,JSON.stringify用來將對(duì)象序列化成JSON字符串。老版本的瀏覽器不支持這個(gè)對(duì)象,但你可以通過json2.js來實(shí)現(xiàn)同樣的功能。

總結(jié)

好吧,這篇其實(shí)算是一篇水文,講述的內(nèi)容比較簡單,算是一篇科普文吧。

這里只想強(qiáng)調(diào)一條,JSON是一種對(duì)數(shù)據(jù)結(jié)構(gòu)的簡潔描述,然后還要知道現(xiàn)代瀏覽器中已經(jīng)有JSON.parseJSON.stringify這兩個(gè)方法就可以了。



以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)