成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

JavaScript學(xué)習(xí)之JSON對(duì)象

banana_pi / 2598人閱讀

摘要:原始類型的值只有四種字符串?dāng)?shù)值必須以十進(jìn)制表示布爾值和不能使用和。字符串必須使用雙引號(hào)表示,不能使用單引號(hào)。數(shù)組或?qū)ο笞詈笠粋€(gè)成員的后面,不能加逗號(hào)。

JSON對(duì)象

補(bǔ)充記錄一下,有些方法很需要熟練記憶的

JSON對(duì)象的規(guī)定

JSON對(duì)象對(duì)值有嚴(yán)格的規(guī)定

復(fù)合類型的值只能是數(shù)組或?qū)ο?,不能是函?shù)、正則表達(dá)式對(duì)象、日期對(duì)象。
原始類型的值只有四種:字符串、數(shù)值(必須以十進(jìn)制表示)、布爾值和null(不能使用NaN, Infinity, -Infinity和undefined)。
字符串必須使用雙引號(hào)表示,不能使用單引號(hào)。
對(duì)象的鍵名必須放在雙引號(hào)里面。
數(shù)組或?qū)ο笞詈笠粋€(gè)成員的后面,不能加逗號(hào)。

我對(duì)這段話的理解是:

JSON對(duì)象的值是一個(gè)值,必須是類型string,number,bool,null,array以及object;對(duì)于array與object,應(yīng)該是我們經(jīng)常自定義的{}與[]類型的對(duì)象和數(shù)組

string類型的值必須是雙引號(hào),所以也就包括了object中的鍵名必須用雙引號(hào)

數(shù)值必須以十進(jìn)制表示

如果值為數(shù)組或者對(duì)象,那么其鍵值類型必須符合第一條;

一般數(shù)組或者對(duì)象最后寫逗號(hào)也會(huì)忽略,而JSON對(duì)象則不允許寫

JSON.stringify(n)

該方法用來將參數(shù)值轉(zhuǎn)化為JSON字符串

參數(shù)類型string
返回呆雙引號(hào)的參數(shù)值;之所以加為了知道參數(shù)是string轉(zhuǎn)化過來的JSON.stringify("javascript"); //"javascript"

參數(shù)類型為number

console.log(JSON.stringify(1));                 // 1
console.log(JSON.stringify(0XFFF));             //4095
console.log(JSON.stringify(Infinity));          //null
console.log(JSON.stringify(NaN));               //null

參數(shù)類型bool

console.log(JSON.stringify(false));            //false
console.log(JSON.stringify(true));             //true

參數(shù)類型null,返回字符串null;JSON.stringify("null"); //null

參數(shù)類型undefined,單純一個(gè)undefined值時(shí),會(huì)忽略直接返回自身undefined,不是字符串undefined

參數(shù)類型Symbol,同上undefined一模一樣

參數(shù)類型數(shù)組

JSON.stringify([1,null,NaN,undefined,function () {},(new Date()),,]);
//             [1,null,null,null,    null,          "2018-11-02T15:22:53.482Z", null]

注意空位會(huì)返回null

參數(shù)類型對(duì)象

console.log(JSON.stringify({"a":1,"b":undefined}));                     //{"a":1}  忽略u(píng)ndefined鍵值
console.log(JSON.stringify({"a":null,"b":NaN}));                        //{"a":null,"b":null} NaN與Infinity返回null
console.log(JSON.stringify({"a":function () {},"b":(new Date())}));     //{"b":"2018-11-02T15:27:13.886Z"} 忽略u(píng)ndefined鍵值

當(dāng)對(duì)象中有不可遍歷屬性時(shí),跳過該屬性

JSON.stringify(n,m)

它的第二個(gè)參數(shù)可填入數(shù)組或者函數(shù)

參數(shù)為數(shù)組時(shí),僅適用于第一個(gè)參數(shù)為對(duì)象時(shí)才有效;其對(duì)象包括數(shù)組
起到過濾的效果,留我們自己想要的鍵值對(duì)

console.log(JSON.stringify({a : 1, b : 2}, ["b"]));         //{b : 2}

參數(shù)為函數(shù):

JSON.stringify({ a: 1, b: [1, 2] }, (key, value) => {
  console.log(key + ":" + value);
  return value;
}); 
/*      
:[object Object]
a:1
b:1,2
0:1
1:2
*/

由例子可以看出,一共執(zhí)行了5次
第一次執(zhí)行將參數(shù)整體作為value,key為空;
剩余每次都按更加value的值進(jìn)行下一次執(zhí)行;
若value為對(duì)象,會(huì)執(zhí)行完對(duì)象中的第一個(gè)成員,再去執(zhí)行第二個(gè)成員,直到?jīng)]有value
返回值,我認(rèn)為它是通過value把參數(shù)遍歷一遍,將value填入相應(yīng)位置,將其返回

由于上面的特性可以實(shí)現(xiàn)深拷貝
但是有缺陷,當(dāng)鍵值為undefined,函數(shù),Symbol類型或者xml,以及不可遍歷元素;都會(huì)將其忽略

toJSON 方法

JSON.stringify()正是調(diào)用了toJSON方法;所以對(duì)其進(jìn)行改造可以改變輸出
例如當(dāng)參數(shù)為正則時(shí),會(huì)返回空對(duì)象

JSON.stringify(/aa/) // {}
RegExp.prototype.toJSON = RegExp.prototype.toString;
JSON.stringify(/aa/) // "/aa/"
JSON.parse()

該方法則是將JSON.stringify()生成的結(jié)果還原

JSON.parse(JSON.stringify("123"));  //123
JSON.parse(JSON.stringify(undefined));  //報(bào)錯(cuò)不是JSON對(duì)象

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/98964.html

相關(guān)文章

  • JavaScript機(jī)器學(xué)習(xí)之線性回歸

    摘要:不能用于機(jī)器學(xué)習(xí)太慢幻覺矩陣操作太難有函數(shù)庫(kù)啊,比如只能用于前端開發(fā)開發(fā)者笑了機(jī)器學(xué)習(xí)庫(kù)都是開發(fā)者機(jī)器學(xué)習(xí)庫(kù)神經(jīng)網(wǎng)絡(luò)神經(jīng)網(wǎng)絡(luò)自然語(yǔ)言處理卷積神經(jīng)網(wǎng)絡(luò)一系列庫(kù)神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)我們將使用來實(shí)現(xiàn)線性回歸,源代碼在倉(cāng)庫(kù)。 譯者按: AI時(shí)代,不會(huì)機(jī)器學(xué)習(xí)的JavaScript開發(fā)者不是好的前端工程師。 原文: Machine Learning with JavaScript : Part 1 ...

    gitmilk 評(píng)論0 收藏0
  • es6學(xué)習(xí)之map和set

    摘要:和定義一組鍵值對(duì)的集合它是一組鍵值對(duì)的數(shù)據(jù)結(jié)構(gòu),由于之前的鍵必須是字符串。 Map和Set Map 定義:一組鍵值對(duì)的集合 它是一組鍵值對(duì)的數(shù)據(jù)結(jié)構(gòu),由于之前javascript的鍵(key)必須是字符串。為了使鍵可以是多種類型的于是在最新的es6中引入了map這種數(shù)據(jù)結(jié)構(gòu),這樣可以加快查詢速度,類似于查字典 方法和屬性 var m = map() //空map m.set(學(xué)生年齡,...

    lvzishen 評(píng)論0 收藏0
  • Java培訓(xùn)學(xué)習(xí)之Java開源軟件的匯總

    摘要:開源軟件的匯總開源插件是一個(gè)類似于的插件,它可以幫助你在不退出的環(huán)境下瀏覽本地文件系統(tǒng)。事件模型支持基于的事件提交。開源容器是一個(gè)非侵入式的對(duì)象反轉(zhuǎn)控制容器容器。開源插件提供一個(gè)可針對(duì)文件語(yǔ)法進(jìn)行著色的編輯器。 Java開源軟件的匯總:EcSplorer 【Java開源 Eclipse插件】EcSplorer(Eclips...

    qiangdada 評(píng)論0 收藏0
  • JS學(xué)習(xí)之JSON數(shù)據(jù)格式

    摘要:簡(jiǎn)析簡(jiǎn)介,是一種數(shù)據(jù)格式而不是編程語(yǔ)言,它和并沒有從屬關(guān)系,任何編程語(yǔ)言都可以使用語(yǔ)法規(guī)則分為三類簡(jiǎn)單值與語(yǔ)法相同,可以在中表示字符串,數(shù)值,布爾值和,但是其不支持?jǐn)?shù)值字符串對(duì)象鍵值和鍵名都得用雙引號(hào)數(shù)組解析和序列化目標(biāo)對(duì)象,過濾器,字符串 JSON簡(jiǎn)析 1.簡(jiǎn)介 JSON,是一種數(shù)據(jù)格式而不是編程語(yǔ)言,它和JavaScrip并沒有從屬關(guān)系,任何編程語(yǔ)言都可以使用JSON; 2.語(yǔ)法...

    isaced 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<