摘要:原始類型的值只有四種字符串?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,以及不可遍歷元素;都會將其忽略
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
摘要:不能用于機器學(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 ...
摘要:和定義一組鍵值對的集合它是一組鍵值對的數(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é)生年齡,...
摘要:開源軟件的匯總開源插件是一個類似于的插件,它可以幫助你在不退出的環(huán)境下瀏覽本地文件系統(tǒng)。事件模型支持基于的事件提交。開源容器是一個非侵入式的對象反轉(zhuǎn)控制容器容器。開源插件提供一個可針對文件語法進(jìn)行著色的編輯器。 Java開源軟件的匯總:EcSplorer 【Java開源 Eclipse插件】EcSplorer(Eclips...
摘要:簡析簡介,是一種數(shù)據(jù)格式而不是編程語言,它和并沒有從屬關(guān)系,任何編程語言都可以使用語法規(guī)則分為三類簡單值與語法相同,可以在中表示字符串,數(shù)值,布爾值和,但是其不支持?jǐn)?shù)值字符串對象鍵值和鍵名都得用雙引號數(shù)組解析和序列化目標(biāo)對象,過濾器,字符串 JSON簡析 1.簡介 JSON,是一種數(shù)據(jù)格式而不是編程語言,它和JavaScrip并沒有從屬關(guān)系,任何編程語言都可以使用JSON; 2.語法...
閱讀 3585·2021-11-24 10:19
閱讀 3724·2021-09-30 09:47
閱讀 1289·2019-08-30 15:56
閱讀 788·2019-08-29 15:11
閱讀 904·2019-08-29 13:43
閱讀 3567·2019-08-28 18:25
閱讀 2160·2019-08-26 13:27
閱讀 1436·2019-08-26 11:44