免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

js中console.log打印對象時屬性缺失怎么辦-創新互聯

這篇文章主要介紹js中console.log打印對象時屬性缺失怎么辦,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

陽春ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創新互聯的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

1. 序

在編寫代碼時,我們常常用 console.log() 的方式將信息在控制臺中打印出來以幫助我們進行前端調試。一般情況下,我們打印普通值都沒有問題,但在打印對象類型時,我們就需要注意點了,要不然可能會出現不符合期望的結果。

2. console.log()輸出對象屬性缺失

  • 首先,定義了一個 cat對象 ,其擁有 name, age, color, birthday 四個屬性。

  • 接著,我們又定義了一個函數 test ,它接收一個對象作為參數。調用test函數時,我們想知道傳入test函數的參數是怎樣的,會先調用 console.log(obj) 將傳入的對象打印出來,最后在函數內的某處刪除傳入對象的 name 屬性。

那么,此時將 cat 對象作為參數調用 test 函數,控制臺打印出來的信息將會是什么呢?會是我們預想的傳入時參數的樣子嗎?

const cat = {
 name: '喵喵',
 age: '2',
 color: 'white',
 birthday: '1月1號'
}

function test(obj) {
 console.log(obj)
 //這里有段很長的代碼...
 delete obj.name
}

test(cat)

控制臺輸出信息:

js中console.log打印對象時屬性缺失怎么辦

咋一看,沒問題,輸出的結果的確是我們傳入時的樣子。但實際中,傳入的對象可能具有很多屬性,那么我們想要看完整的信息就必須將輸出結果展開。如下:

js中console.log打印對象時屬性缺失怎么辦

展開的信息中,我們可以看到結果少了 name 屬性,細心的小伙伴可以發現還多了一個感嘆號的標志(鼠標懸浮的文字:Value below was evaluated just now.)。咦,奇怪了,我們不是在test函數內的第一行代碼就輸出參數的信息的嗎,怎么會少了 name 屬性? 其實感嘆號的內容已經說明了,我們展開的信息其實是剛剛獲取到的結果,也就是代碼執行后的結果,test函數中有一段 delete obj.name 的代碼,執行完后,obj對象當然就沒有 name

屬性啦。在復雜的項目中,對象屬性會很多,代碼中的不知哪一處也可能會刪除了對象的某些屬性,這時我們打印出來的結果可能就會跟傳入時的不一樣,這種情況下我們可能就會一頭霧水了。那么如何獲取正確的結果呢?

3. 獲取正確的結果

由于展開 console.log() 的結果并不是我們代碼所處位置那個時間點的對象的拷貝,故我們想要在代碼執行到那個位置時的那個時間點對應的對象狀態,只要在那時輸出 對象的副本 即可。

3.1 方法1:對象展開

const cat = {
 name: '喵喵',
 age: '2',
 color: 'white',
 birthday: '1月1號'
}

function test(obj) {
 console.log({...obj}) //使用ES6的對象展開符操作,獲取到obj的副本。
 //這里有段很長的代碼...
 delete obj.name
}

test(cat)

這時,我們得到的就是 console.log() 執行時間點時obj的狀態啦。

js中console.log打印對象時屬性缺失怎么辦

3.2 方法2: JSON.stringfy()看字符串

const cat = {
 name: '喵喵',
 age: '2',
 color: 'white',
 birthday: '1月1號'
}

function test(obj) {
 console.log(JSON.stringify(obj)) //調用JSON.stringify()方法將對象轉化為字符串
 //這里有段很長的代碼...
 delete obj.name
}

test(cat)

同樣,此時我們也可以得到代碼運行時間點時的obj對象狀態。

js中console.log打印對象時屬性缺失怎么辦

以上是“js中console.log打印對象時屬性缺失怎么辦”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯成都網站設計公司行業資訊頻道!

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

本文題目:js中console.log打印對象時屬性缺失怎么辦-創新互聯
標題URL:http://m.newbst.com/article24/dopcje.html

成都網站建設公司_創新互聯,為您提供手機網站建設網站建設品牌網站制作域名注冊企業網站制作定制網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站建設