首頁  >  文章  >  web前端  >  javascript序列化是什麼

javascript序列化是什麼

青灯夜游
青灯夜游原創
2021-09-09 14:43:112614瀏覽

序列化就是指將記憶體中的變數轉換為可保存或傳輸的字串的過程;在javascript中,可以使用「JSON.stringify()」方法來實現序列化,這能將JavaScript值轉換為JSON字串。

javascript序列化是什麼

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

所謂序列化,就是將記憶體中的變數轉換為可保存或傳輸的字串的過程。而反序列化就是在適當的時候把這個字串再轉換成原來的變數使用。這兩個過程結合起來可以輕鬆的完成資料的儲存和傳輸操作,使得程式更具維護性。

javascript 序列化

在javascript中,可以使用「JSON.stringify()」方法來實現序列化,它可將JavaScript值轉換為JSON 字串。反序列化就需要使用「JSON.parse()」方法。

語法格式:JSON.stringify(value[, replacer[, space]])

參數說明:

  • value:

    必備, 要轉換的JavaScript 值(通常是物件或陣列)。

  • replacer:

    可選。用於轉換結果的函數或陣列。

    如果 replacer 為函數,則 JSON.stringify 將呼叫該函數,並傳入每個成員的鍵和值。使用傳回值而不是原始值。如果此函數傳回 undefined,則排除成員。根物件的鍵是一個空字串:""。

    如果 replacer 是一個數組,則只轉換該數組中具有鍵值的成員。成員的轉換順序與鍵在陣列中的順序一樣。

  • space:

    可選,文字新增縮排、空格和換行符,如果space 是一個數字,則傳回值文字在每個層級縮排指定數目的空格,如果space 大於10,則文字縮排10 個空格。 space 也可以使用非數字,如:\t。

範例:使用 JSON.stringify() 序列化一個物件。

javascript序列化是什麼

javascript序列化是什麼

可以看到,在exampleStr和exampleObj2中並沒有 y:undefined 的內容。這說明:JSON的語法是JavaScript語法的子集,它並不能表示JavaScript中的所有值,對於JSON語法不支援的屬性,序列化後會其省略。其詳細規則如下:

①對於JavaScript中的五種原始類型,JSON語法支援數字、字串、布林值、null四種,不支援undefined;

②NaN、Infinity和-Infinity序列化的結果是null;

③JSON語法不支援函數;

④除了RegExp、Error對象,JSON語法支援其他所有物件;

⑤日期對象序列化的結果是ISO格式的字串,但JSON.parse()仍然保留它們字串形態,並不會將其還原為日期物件;

⑥JSON.stringify()只能序列化對象的可列舉的自有屬性;

從上面的例子也可以看到,在符合上述規則的情況下,還可以透過物件序列化和反序列化完成物件的深拷貝。

【推薦學習:javascript進階教學

#

以上是javascript序列化是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn