最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS中JSON.stringify使用場景面試精講

 更新時間:2023年10月16日 09:44:22   作者:Winn  
這篇文章主要為大家介紹了JS中JSON.stringify使用場景面試精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

JSON.stringify 的作用意義

你是否知道 JSON.stringify 的作用意義,當(dāng)面試被問到該如何回答。網(wǎng)上的八股文答案大概教你這樣回答:

JSON.stringify(value,replacer,space)

它是一個用于序列化對象的方法,接受三個參數(shù),第一個參數(shù)是要被序列化的對象,接受對象或數(shù)組類型。第二個參數(shù)用于標(biāo)記需要序列化的屬性,接受數(shù)組和函數(shù)類型。第三個參數(shù)用于描述序列化后的縮進(jìn)字符數(shù),用于美化格式。當(dāng)然這樣的回答也沒有錯,不過面試考察的更多是大家的實際應(yīng)用能力以及實戰(zhàn)場景,如果只回答八股文的內(nèi)容,更多的只能體現(xiàn)大家的背誦能力而已,所以今天給大家呈現(xiàn) JSON.stringify 的實際應(yīng)用場景。

場景一:localStorage 的存儲

前端 localStorage 中只能接受字符串的存儲類型,而且它是一個 KV 的結(jié)構(gòu),我們嘗試模擬存儲一個對象這種場景:

我們會發(fā)現(xiàn)是存儲失敗的,我們沒有辦法把整個 obj 存儲到 localStorage 中,所以在這種場景下,我們就需要用到 JSON.stringify,把對象先序列化再進(jìn)行存儲:

我們發(fā)現(xiàn)這樣是可以存儲成功的,我們只需要把存進(jìn)去的對象再進(jìn)行一次 JSON.parse:

整個過程我們就可以把對象給存儲進(jìn)去,同時能提取出來,這樣就ok了。

場景二:對象的深拷貝

JS 中的對象它都是一個引用的類型。

如上圖把obj賦予給objA,當(dāng)改動objA里面的a屬性,本質(zhì)上其實在obj里面的a屬性它也被改動了,那怎么樣解決這個問題呢?這里可以利用 JSON.stringify 以及 JSON.parse 給做一次對象的深復(fù)制,具體應(yīng)用是這樣的:

我們用 JSON.stringify 序列化一次這個obj,再把它解析出來,最后的結(jié)果賦予給objB,這時候我改動objB里面的a屬性,但obj里面的屬性并沒有進(jìn)行變化,這樣的話我們就成功的做了一次深度復(fù)制,這也是 JSON.parse 一個巧妙的應(yīng)用。

場景三:刪除對象屬性

如果我們需要刪除對象中某個屬性,也可以利用 JSON.stringify 去實現(xiàn),比如說下面這個對象我們要把b屬性刪掉,可以利用  JSON.stringify 的第二個參數(shù)去巧妙應(yīng)用:

第二個參數(shù)接受一個方法,方法接受兩個參數(shù),一個是key,一個是value,我們可以在里面寫邏輯,如果key==='b',這時候我們返回undefine,否則的話我們把 value 返回,這時候我們就可以得到一個沒有b屬性的一個序列化的字符串,我們再把這個字符串給 JSON.parse 回來,就可以得到消除 b 之后的一個對象,這也是 JSON.stringify 的一個巧妙應(yīng)用。

以上就是JS中JSON.stringify使用場景面試精講的詳細(xì)內(nèi)容,更多關(guān)于JS JSON.stringify使用場景的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 分析javascript中9 個常見錯誤阻礙你進(jìn)步

    分析javascript中9 個常見錯誤阻礙你進(jìn)步

    這篇文章主要介紹了分析javascript中9 個常見錯誤阻礙你進(jìn)步的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • Ajax::prototype 源碼解讀

    Ajax::prototype 源碼解讀

    Ajax::prototype 源碼解讀...
    2007-01-01
  • Bootstrap源碼解讀模態(tài)彈出框(11)

    Bootstrap源碼解讀模態(tài)彈出框(11)

    這篇文章主要源碼解讀了Bootstrap模態(tài)彈出框,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • JavaScript中時間日期函數(shù)new?Date()詳解(5種獲取時間戳的函數(shù))

    JavaScript中時間日期函數(shù)new?Date()詳解(5種獲取時間戳的函數(shù))

    這篇文章主要給大家介紹了關(guān)于JavaScript中時間日期函數(shù)new?Date()的相關(guān)資料,主要講的是JS中5種獲取時間戳的函數(shù),new Date()是JavaScript中用于獲取當(dāng)前日期和時間的內(nèi)置函數(shù),需要的朋友可以參考下
    2024-04-04
  • ts中any和unknow的區(qū)別及說明

    ts中any和unknow的區(qū)別及說明

    本文介紹了TypeScript中any和unknown類型的使用場景,any類型非常靈活,但可能導(dǎo)致潛在的運(yùn)行時錯誤;而unknown類型雖然更嚴(yán)格,但在使用前需要進(jìn)行類型檢查,更安全,在不確定變量類型時,應(yīng)優(yōu)先考慮使用unknown以提高代碼安全性
    2026-03-03
  • JavaScript中0和

    JavaScript中0和""比較引發(fā)的問題

    這篇文章主要介紹了JavaScript中0和""比較引發(fā)的問題,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-05-05
  • ES6如何用一句代碼實現(xiàn)函數(shù)的柯里化

    ES6如何用一句代碼實現(xiàn)函數(shù)的柯里化

    這篇文章主要介紹了ES6如何用一句代碼實現(xiàn)函數(shù)的柯里化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • uni-app中彈窗的使用與自定義彈窗

    uni-app中彈窗的使用與自定義彈窗

    眾所周知彈窗在我們實際開發(fā)場景中是非常常用的,最近在工作中就遇到了相關(guān)需求,所以下面這篇文章主要給大家介紹了關(guān)于uni-app中彈窗使用與自定義彈窗的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Javascript如何判斷數(shù)據(jù)類型和數(shù)組類型

    Javascript如何判斷數(shù)據(jù)類型和數(shù)組類型

    這篇文章主要介紹Javascript如何判斷數(shù)據(jù)類型和數(shù)組類型,通俗易懂,需要的朋友可以參考下。
    2016-06-06
  • JavaScript 組件之旅(一)分析和設(shè)計

    JavaScript 組件之旅(一)分析和設(shè)計

    毫無疑問,JavaScript 是一種非常靈活的腳本語言,有時候它像一只難以馴服的野馬——你受益于它的靈活性的同時,也要時刻提防它變得失去控制
    2009-10-10

最新評論

天全县| 霍山县| 哈尔滨市| 晴隆县| 惠东县| 广饶县| 桓台县| 永昌县| 杭锦后旗| 尼玛县| 长武县| 武清区| 岐山县| 凌海市| 通州区| 克什克腾旗| 荣成市| 庆阳市| 全南县| 宣武区| 巴楚县| 安平县| 兴仁县| 长治县| 海宁市| 清新县| 四子王旗| 商河县| 沁源县| 威信县| 信阳市| 乌拉特后旗| 绥中县| 台北市| 全南县| 文化| 广德县| 贡山| 桃园县| 吉木乃县| 民县|