国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS對象序列化、對象的toString()與對象的valueOf()

iamyoung001 / 1992人閱讀

摘要:序列化處理對象輸出當對象的為和時會被忽略,為和為對象實例如,為和都加上雙引號處理數組輸出當成員為時為對象也是為和都加上雙引號自定義序列化可以重寫方法進行自定義序列化輸出對象的和輸出輸出調用了輸出調用了輸出調用了當和都存在時,在進行操作時

序列化 JSON.stringify()處理對象
let obj = {
            val: undefined,
            a: NaN,
            b: Infinity,
            c: new Date(),
            d: { e: "nice" },
            y: Object
          }
console.log(JSON.stringify(obj)) 
//輸出 "{ "a": null, "b": null, "c": "2019-03-13T12:01:44.295Z", "d": "{ "e": "nice" }" }"          

當對象的valueundefinedObject時會被忽略,為NaN和Infinity為null,對象實例如d,為keyvalue都加上雙引號

JSON.stringify()處理數組
let arr = [undefined, Object, Symbol(""), { e: "nice" }]
console.log(JSON.stringify(arr)) 
//輸出 "[null, null, null, { "e": "nice" }]"

當成員為undefinedObject、Symbol時為null,對象也是為keyvalue都加上雙引號

自定義序列化

可以重寫toJSON()方法進行自定義序列化

let obj = {
            x: 1,
            y: 2,
            re: {
                  re1: 1,
                  re2: 2,
                  toJSON: function(){
                      return this.re1 + this.re2;
                  }  
                }
          }
console.log(JSON.stringify(obj))
//輸出 "{ "x":1, "y":2, "re":3 }"          
對象的toSting()和valueOf()
let obj = { x:1, y:2 }
console.log(obj.toString()) //輸出 "[object Object]" 

obj.toString = function(){
                    return this.x + this.y;
               }
"Result" + obj; //輸出 "Result3" 調用了toString
+obj; //輸出 "3" 調用了toString

obj.valueOf = function(){
                    return this.x + this.y + 100;
               }
"Result" + obj; //輸出 "Result103" 調用了toString               

toStringvalueOf都存在時,在進行操作時,都會嘗試轉換成基本類型,先找valueOf,如果返回基本類型,這只調用valueOf,如果不是,比如是對象的話,就去找toString,如果也返回Object,就會報錯

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/109187.html

相關文章

  • 通過一張簡單圖,讓你徹底地、永久地搞懂JS==運算

    摘要:一有和無在圖中,值的六種類型用藍底色的矩形表示。想一下在語言中,根本沒有布爾類型,通常用來表示邏輯真假的正是整數和。根據圖,需要將布爾類型轉為數字類型,而轉為數字的結果是,所以表達式變為兩個操作數變成了對象類型數字類型。 大家知道,==是JavaScript中比較復雜的一個運算符。它的運算規則奇怪,容易讓人犯錯,從而成為JavaScript中最糟糕的特性之一。 在仔細閱讀了ECMASc...

    testbird 評論0 收藏0
  • js數據類型轉化

    數據類型轉化表 首先上數據類型轉化表,便于遇到問題直接查看 值 字符串 數字 布爾值 對象 undefined null undefined null NaN false false throws TypeError throws TypeError true false true false 1 0 new Boolean(true) new Boolean(f...

    dmlllll 評論0 收藏0
  • 每天10個前端知識點:雜技

    摘要:個人博客已上線,歡迎前去訪問評論無媛無故的個人博客以下內容若有問題煩請即時告知我予以修改,以免誤導更多人。把一個邏輯值轉換為字符串,并返回結果。注冊后,可直接調用的接口,并獲取的返回值。 個人博客已上線,歡迎前去訪問評論!無媛無故 - wangchloe的個人博客 以下內容若有問題煩請即時告知我予以修改,以免誤導更多人。 toString() && valueOf() JSON ...

    dongfangyiyu 評論0 收藏0
  • 每天10個前端知識點:雜技

    摘要:個人博客已上線,歡迎前去訪問評論無媛無故的個人博客以下內容若有問題煩請即時告知我予以修改,以免誤導更多人。把一個邏輯值轉換為字符串,并返回結果。注冊后,可直接調用的接口,并獲取的返回值。 個人博客已上線,歡迎前去訪問評論!無媛無故 - wangchloe的個人博客 以下內容若有問題煩請即時告知我予以修改,以免誤導更多人。 toString() && valueOf() JSON ...

    marser 評論0 收藏0

發表評論

0條評論

iamyoung001

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<