一、使用 typeof 運算符判斷
1、typeof
運算符是用於判斷一個變量的類型的。如果該變量存在,typeof
運算符會返回一個字符串,表示該變量的類型。如果該變量不存在,則會返回 "undefined"
。
var foo;
if (typeof foo !== "undefined") {
console.log("foo 已經聲明");
} else {
console.log("foo 沒有聲明");
}
// 輸出結果:foo 沒有聲明
2、typeof
運算符也可以用於判斷一個對象的屬性是否存在。例如,我們可以使用下面的代碼來確保對象 person
中的 name
屬性已經存在:
if (typeof person !== "undefined" && typeof person.name !== "undefined") {
console.log("person 的 name 屬性已經存在");
} else {
console.log("person 的 name 屬性不存在");
}
// 輸出結果:person 的 name 屬性不存在
二、使用變量判斷
1、我們可以使用變量的真值來判斷變量是否存在。在 JavaScript 中,有一些值是被認為是“假”(false)的,例如:false、0、空字符串、null、undefined 和 NaN。只要變量不是這些“假”值,它就可以被認為是存在的。
var foo;
if (foo) {
console.log("foo 已經聲明");
} else {
console.log("foo 沒有聲明");
}
// 輸出結果:foo 沒有聲明
2、如果我們要判斷一個對象的屬性是否存在,我們可以使用變量來判斷。例如,下面的代碼用來確保對象 person
中的 name
屬性已經存在:
if (person && person.name) {
console.log("person 的 name 屬性已經存在");
} else {
console.log("person 的 name 屬性不存在");
}
// 輸出結果:person 的 name 屬性不存在
三、使用 in 運算符判斷
1、in
運算符用於判斷一個對象是否存在某個屬性。如果該屬性存在,in
運算符會返回 true
;否則返回 false
。例如,下面的代碼用來判斷對象 person
是否存在 name
屬性:
if ("name" in person) {
console.log("person 的 name 屬性已經存在");
} else {
console.log("person 的 name 屬性不存在");
}
// 輸出結果:person 的 name 屬性不存在
2、同樣的,我們也可以使用 in
運算符來確保一個對象中的屬性鏈存在。例如,下面的代碼用來判斷對象 person
中的 address.city
屬性是否存在:
if ("address" in person && "city" in person.address) {
console.log("person 的 address.city 屬性已經存在");
} else {
console.log("person 的 address.city 屬性不存在");
}
// 輸出結果:person 的 address.city 屬性不存在
四、使用 try…catch 語句判斷
1、我們可以使用 try...catch
語句來判斷變量是否存在。如果該變量不存在,try
代碼塊中的表達式會拋出一個錯誤,並被 catch
代碼塊中的捕獲。我們可以在 catch
代碼塊中處理該錯誤,從而達到判斷變量是否存在的目的。
try {
var foo = bar;
console.log("foo 存在");
} catch (e) {
console.log("foo 不存在");
}
// 輸出結果:foo 不存在
2、同樣的,我們也可以使用 try...catch
語句來判斷一個對象的屬性是否存在。例如,下面的代碼用來確保對象 person
中的 name
屬性已經存在:
var person = {};
try {
var name = person.name;
console.log("person 的 name 屬性已經存在");
} catch (e) {
console.log("person 的 name 屬性不存在");
}
// 輸出結果:person 的 name 屬性不存在
原創文章,作者:RDMJP,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/368350.html