對于 JSON.stringify 這個方法我相信大家都很熟悉了,一般用來將一個對象或者數組轉成字符串,也就是一個 JSON,然后讓接口攜帶并傳到后端。RkF28資訊網——每日最新資訊28at.com
RkF28資訊網——每日最新資訊28at.com
RkF28資訊網——每日最新資訊28at.com
但是你真的很了解 JSON.stringify 嗎?往下閱讀,看你是不是真的了解它~RkF28資訊網——每日最新資訊28at.com
第二個參數傳數組Array
JSON.stringify 的第二個參數傳數組時,那么它只會轉換數組中的 key,比如下面例子中,只會轉換 name 屬性:RkF28資訊網——每日最新資訊28at.com
RkF28資訊網——每日最新資訊28at.com
RkF28資訊網——每日最新資訊28at.com
第三個參數傳數字Number
JSON.stringify 的第三個參數傳數字時,這個數字會被當成 JSON 的縮進級別。RkF28資訊網——每日最新資訊28at.com
比如下面例子,分別是2空格、4空格、6空格縮進:RkF28資訊網——每日最新資訊28at.com
RkF28資訊網——每日最新資訊28at.com
RkF28資訊網——每日最新資訊28at.com
第三個參數傳字符串String
JSON.stringify 的第三個參數傳字符串時,這個字符串會被當成 JSON 的縮進占位符:RkF28資訊網——每日最新資訊28at.com
RkF28資訊網——每日最新資訊28at.com
RkF28資訊網——每日最新資訊28at.com
toJSON
如果被轉換的對象中有 toJSON 這個方法的話,那么當JSON.stringify進行轉換后,會獲取這個toJSON方法的執行返回值:RkF28資訊網——每日最新資訊28at.com
RkF28資訊網——每日最新資訊28at.com
RkF28資訊網——每日最新資訊28at.com
JSON.stringify 局限性
很多人使用 JSON.stringify 來做深拷貝,但是這是萬萬不行的,因為它是有局限性的:RkF28資訊網——每日最新資訊28at.com
RkF28資訊網——每日最新資訊28at.com
從下面例子可以看出:RkF28資訊網——每日最新資訊28at.com
- undefined、function、symbol 在轉換后直接被忽略了
- 正則表達式轉換成對象,日期轉換成字符串
- NaN、Infinity 直接變成 null
所以千萬不要用 JSON.stringify 來做深拷貝!!!得不到滿意的結果的!!!RkF28資訊網——每日最新資訊28at.com
RkF28資訊網——每日最新資訊28at.com
環引用報錯
對包含循環引用的對象(對象之間相互引用,形成無限循環)執行此方法,會拋出錯誤。RkF28資訊網——每日最新資訊28at.com
以前舊版的瀏覽器和Nodejs是會直接報錯的,但是貌似現在新版的不會報錯了:RkF28資訊網——每日最新資訊28at.com
RkF28資訊網——每日最新資訊28at.com
RkF28資訊網——每日最新資訊28at.com
本文鏈接:http://www.www897cc.com/showinfo-26-79149-0.html關于 JSON.stringify,你不知道的六件事
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: Vite 為什么快呢?快在哪?說一下我自己的理解吧
下一篇: 產業人士稱尼康正向中國“頭部”新能源汽車品牌供應光刻機設備
標簽: