自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

關(guān)于 JSON.stringify,你不知道的六件事

開發(fā)
JSON.stringify? 這個方法我相信大家都很熟悉了,一般用來將一個對象或者數(shù)組轉(zhuǎn)成字符串。但是你真的很了解 JSON.stringify 嗎?

對于 JSON.stringify 這個方法我相信大家都很熟悉了,一般用來將一個對象或者數(shù)組轉(zhuǎn)成字符串,也就是一個 JSON,然后讓接口攜帶并傳到后端。

但是你真的很了解 JSON.stringify 嗎?往下閱讀,看你是不是真的了解它~

第二個參數(shù)傳數(shù)組Array

JSON.stringify 的第二個參數(shù)傳數(shù)組時,那么它只會轉(zhuǎn)換數(shù)組中的 key,比如下面例子中,只會轉(zhuǎn)換 name 屬性:

第三個參數(shù)傳數(shù)字Number

JSON.stringify 的第三個參數(shù)傳數(shù)字時,這個數(shù)字會被當(dāng)成 JSON 的縮進(jìn)級別。

比如下面例子,分別是2空格、4空格、6空格縮進(jìn):

第三個參數(shù)傳字符串String

JSON.stringify 的第三個參數(shù)傳字符串時,這個字符串會被當(dāng)成 JSON 的縮進(jìn)占位符:

toJSON

如果被轉(zhuǎn)換的對象中有 toJSON 這個方法的話,那么當(dāng)JSON.stringify進(jìn)行轉(zhuǎn)換后,會獲取這個toJSON方法的執(zhí)行返回值:

JSON.stringify 局限性

很多人使用 JSON.stringify 來做深拷貝,但是這是萬萬不行的,因為它是有局限性的:

從下面例子可以看出:

  • undefined、function、symbol 在轉(zhuǎn)換后直接被忽略了
  • 正則表達(dá)式轉(zhuǎn)換成對象,日期轉(zhuǎn)換成字符串
  • NaN、Infinity 直接變成 null

所以千萬不要用 JSON.stringify 來做深拷貝?。。〉貌坏綕M意的結(jié)果的?。?!

環(huán)引用報錯

對包含循環(huán)引用的對象(對象之間相互引用,形成無限循環(huán))執(zhí)行此方法,會拋出錯誤。

以前舊版的瀏覽器和Nodejs是會直接報錯的,但是貌似現(xiàn)在新版的不會報錯了:


責(zé)任編輯:趙寧寧 來源: 前端之神
相關(guān)推薦

2021-12-22 09:08:39

JSON.stringJavaScript字符串

2013-06-18 11:05:40

Mac Pro開發(fā)工具蘋果

2017-05-02 11:36:00

Java

2014-11-21 10:25:18

Java

2010-05-19 09:01:00

2011-11-30 13:34:13

2011-04-02 13:11:35

JARJava

2015-02-02 14:12:03

云桌面

2015-08-14 14:46:47

軟件開發(fā)

2010-08-24 14:08:33

喬布斯

2015-08-14 16:39:59

軟件開發(fā)老板

2024-10-14 12:42:06

2024-01-11 11:28:54

2010-03-19 08:45:20

Windows Pho

2021-07-12 23:21:52

MyISAM引擎InnoDB

2015-06-23 13:22:17

桌面云深信服

2015-10-10 09:29:32

GitGithub

2021-08-27 17:00:51

Linux內(nèi)核

2015-10-10 13:11:35

GitGithub工具

2011-06-01 15:34:23

點贊
收藏

51CTO技術(shù)棧公眾號