亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JSON.stringify實現深拷貝的坑怎么解決

發布時間:2022-07-07 09:41:55 來源:億速云 閱讀:191 作者:iii 欄目:開發技術

這篇“JSON.stringify實現深拷貝的坑怎么解決”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“JSON.stringify實現深拷貝的坑怎么解決”文章吧。

當對象中有時間類型的元素時候-----時間類型會被變成字符串類型數據

const obj = {
    date:new Date()
}
typeof obj.date === 'object' //true
const objCopy = JSON.parse(JSON.stringify(obj));
typeof objCopy.date === string; //true

然后你就會驚訝的發現,getTime()調不了了,getYearFull()也調不了了。就所有時間類型的內置方法都調不動了。

但,string類型的內置方法全能調了。

當對象中有undefined類型或function類型的數據時 --- undefined和function會直接丟失

    const obj = {
        undef: undefined,
        fun: () => { console.log('嘰里呱啦,阿巴阿巴') }
    }
    console.log(obj,"obj");
    const objCopy = JSON.parse(JSON.stringify(obj));
    console.log(objCopy,"objCopy")

JSON.stringify實現深拷貝的坑怎么解決

然后你就會發現,這兩種類型的數據都沒了。

當對象中有NaN、Infinity和-Infinity這三種值的時候 --- 會變成null

1.7976931348623157E+10308 是浮點數的最大上線 顯示為Infinity

-1.7976931348623157E+10308 是浮點數的最小下線 顯示為-Infinity

    const obj = {
        nan:NaN,
        infinityMax:1.7976931348623157E+10308,
        infinityMin:-1.7976931348623157E+10308,
    }
    console.log(obj, "obj");
    const objCopy = JSON.parse(JSON.stringify(obj));
    console.log(objCopy,"objCopy")

JSON.stringify實現深拷貝的坑怎么解決

當對象循環引用的時候 --會報錯

    const obj = {
        objChild:null
    }
    obj.objChild = obj;
    const objCopy = JSON.parse(JSON.stringify(obj));
    console.log(objCopy,"objCopy")

JSON.stringify實現深拷貝的坑怎么解決

假如你有幸需要拷貝這么一個對象 ↓

const obj = {
    nan:NaN,
    infinityMax:1.7976931348623157E+10308,
    infinityMin:-1.7976931348623157E+10308,
    undef: undefined,
    fun: () => { console.log('嘰里呱啦,阿巴阿巴') },
    date:new Date,
}

然后你就會發現,好家伙,沒一個正常的。

你還在使用JSON.stringify()來實現深拷貝嗎?

如果還在使用的話,小心了。推薦以后深拷貝使用遞歸的方式進行深拷貝。

以上就是關于“JSON.stringify實現深拷貝的坑怎么解決”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

琼中| 玉门市| 山东| 呼玛县| 河曲县| 甘洛县| 上高县| 镇雄县| 修水县| 华阴市| 教育| 庆元县| 崇阳县| 昌平区| 铅山县| 平远县| 瑞丽市| 贵南县| 同德县| 陵水| 永仁县| 临夏县| 天等县| 郴州市| 荥阳市| 山西省| 武威市| 舞阳县| 多伦县| 牟定县| 瑞昌市| 靖边县| 永丰县| 青铜峡市| 广河县| 周宁县| 且末县| 济阳县| 榕江县| 左权县| 新余市|