我正在關注https://stackoverflow.com/a/519157/18736427的解決方案。
但是,控制臺給了我一個錯誤,我想測驗的物件是undefined......
我想測驗物件是否存在,如果不存在,那么console.log('False');,但它給了我一個“未定義”的錯誤
因此無法執行檢查后的代碼......我該如何解決這個問題?
const btn = document.querySelector('.test');
//const data1 = {
//apple: 'red'
//}
const data2 = {
banana: 'yellow'
}
btn.addEventListener('click', function() {
if (typeof data1['apple'] !== 'undefined') {
console.log('Yes');
}
console.log('False');
});
<button class="test">Check</button>
uj5u.com熱心網友回復:
編輯:
因為,下面的代碼行被注釋掉了。
//const data1 = {
//apple: 'red'
//}
JavaScript 引擎找不到data1物件。所以,顯然你在這一點上遇到了錯誤。
要測驗您的 data1 物件,您必須先取消注釋它。
然后檢查物件是否真的退出,我們可以計算鍵。
如果Object.keys(data1).length > 0,則物件data1至少存在一個屬性。
或者您可以簡單地檢查:
if(data1) {
console.log("Yes")
}else{
console.log("Object doesn't exist")
}
但是,您可以通過直接使用來檢查變數是否已定義typeof。
if(typeof data1 !== 'undefined) {
console.log('Data1 exists');
}
請參考 GeeksForGeeks 網站:
極客的極客
請注意,您無法檢查尚未在代碼中宣告的物件或變數。這是一個錯誤。
data1 未定義
const btn = document.querySelector('.test');
const data1 = {
apple: 'red'
}
const data2 = {
banana: 'yellow'
}
btn.addEventListener('click', function() {
if (data1) {
console.log('Yes');
}else {
console.log("Data1 object doesn't exist")
}
});
<button class="test">Check</button>
uj5u.com熱心網友回復:
檢查您是否真的需要提供red和apple變數。
而是使用字串作為鍵
const btn = document.querySelector('.test');
const data = {
apple: "red"
}
btn.addEventListener('click', function() {
if (typeof data["apple"] !== 'undefined') {
console.log('Yes');
}
console.log('False');
});
uj5u.com熱心網友回復:
如果一個物件變數沒有定義,javascript真的不會拋出錯誤。但是,如果您撰寫red變數,瀏覽器會嘗試將實際值分配給red變數。因此,該方法確實有效:red變數未定義。
const btn = document.querySelector('.test');
const data = {
//do not define apple
}
btn.addEventListener('click', function() {
if (typeof data['apple'] !== 'undefined') {
console.log('Yes');
}
console.log('False');
});
<button class="test">Check</button>
uj5u.com熱心網友回復:
嘗試:
const btn = document.getElementsByClassName('test');
if (typeof data["apple"] !== 'undefined') {
console.log('Yes');
}
你應該使用data.appleor data["apple"]。
uj5u.com熱心網友回復:
我很困惑是否宣告了一個變數并且它是否包含一個值
@Nick Parsons 的回答
如果您不知道變數是否已宣告,請使用 typeof: if(typeof data1 !== 'undefined'),如果您知道變數已宣告,但不確定它是否包含值,則可以檢查未定義:如果(資料1!==未定義)。不過,根據您所說的,您應該知道是否宣告了變數。如果沒有更多的背景關系,很難說出確切的問題是什么。
謝謝@Imran Rafiq 多次幫助我。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/462543.html
標籤:javascript
