国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

banana_pi / 2553人閱讀

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

JSON對象

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

JSON對象的規(guī)定

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

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

我對這段話的理解是:

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

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

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

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

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

JSON.stringify(n)

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

參數(shù)類型string
返回呆雙引號的參數(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,單純一個undefined值時,會忽略直接返回自身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]

注意空位會返回null

參數(shù)類型對象

console.log(JSON.stringify({"a":1,"b":undefined}));                     //{"a":1}  忽略undefined鍵值
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"} 忽略undefined鍵值

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

JSON.stringify(n,m)

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

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

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為對象,會執(zhí)行完對象中的第一個成員,再去執(zhí)行第二個成員,直到?jīng)]有value
返回值,我認(rèn)為它是通過value把參數(shù)遍歷一遍,將value填入相應(yīng)位置,將其返回

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

toJSON 方法

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

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));  //報錯不是JSON對象

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

    isaced 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<