亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢查 if 語句中是否未定義,導致未捕獲的錯誤,因為 if 中的項目未定義。該怎么辦?

檢查 if 語句中是否未定義,導致未捕獲的錯誤,因為 if 中的項目未定義。該怎么辦?

元芳怎么了 2023-09-28 15:41:14
我正在使用 Oboe.js 將 MongoDB 圖集集合中的數據流式傳輸到網頁。在 MongoDB JSON 中,某些 _ids 的路徑item.image.filename是圖像的路徑。有些沒有 item.image.filename,因為并非所有流式項目都需要圖像。當存在未定義的值并且我在控制臺中看到錯誤時,加載停止。我希望如果沒有存在值,雙簧管將作為其默認行為繼續到下一條記錄。但是,沒有圖像路徑的 _ids 在我用來排除它們的 if 語句中拋出異常。我想明確的是 item.image.filename 不存在,其中沒有任何值或設置為 null,它只是不存在。據我對 MongoDB 的了解,讓每個項目都獨一無二的靈活性是它的一大優勢。我相信我已經用 if 語句檢查了所有的方式,甚至使用了 try catch 塊,但是在編譯時, if 語句本身拋出了這個錯誤:oboe-browser.min.js:5 Uncaught Error: Cannot read property 'filename' of undefined at oboe-browser.min.js:5 。如果未定義,if else 塊將渲染沒有圖像的 html,否則渲染它。解決這個問題的一種方法是item.image.filename為每個記錄添加一個,但我不想,有很多記錄,這是我最后的手段??磥硇枰却拍芙鉀Q這個問題。這是我嘗試過的:if(!item.image.filename) if(item.image.filename === undefined)if(item.image.filename == 'undefined')if(item.image.filename == undefined)if(item.image.filename === 'undefined')if(item.image.filename === null)if(item.image.filename == null)我采取了另一種路線,例如if(item.image.filename !== undefined)帶引號和不帶引號,以及 null 。謝謝您的幫助!
查看完整描述

2 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

你會想要使用typeof:


if(typeof item !== 'object' || typeof item.image !== 'object' || item.image.filename === undefined){

  console.log("undefined as far as you're concerned");

}


您需要知道的是您無法=== undefined對尚未聲明的變量進行測試。但只要對象確實存在,就可以對不存在的對象屬性進行測試。


查看完整回答
反對 回復 2023-09-28
?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

嘗試這樣的事情:

if(item.image.filename in this)

或者

if(!(item.image.filename in this))

這是一個對象或數組


查看完整回答
反對 回復 2023-09-28
  • 2 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號