91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

加查县| 京山县| 鄂州市| 扶余县| 英德市| 祥云县| 独山县| 衡南县| 临桂县| 祁门县| 抚远县| 平遥县| 丽江市| 定州市| 陆河县| 朔州市| 璧山县| 定襄县| 广东省| 德阳市| 浪卡子县| 崇明县| 宣恩县| 额敏县| 司法| 宁武县| 浦江县| 永春县| 湖口县| 上虞市| 宁化县| 同江市| 九台市| 德江县| 桃源县| 阜新市| 武安市| 靖西县| 杭锦旗| 鲁甸县| 鞍山市|