isset 在 JavaScript 中的等價函式

Shraddha Paghdar 2023年10月12日
  1. isset 在 JavaScript 中的等價函式
  2. 在 JavaScript 中使用 in 運算子檢查是否設定了值
  3. 在 JavaScript 中使用 Object.hasOwnProperty() 檢查值是否已設定
isset 在 JavaScript 中的等價函式

PHP 提供了一個函式 isset 來確定是否設定了變數;這意味著如果一個變數被宣告並分配了一個非空值。當一個變數被賦值為 null 時,isset() 將返回 false。在 JavaScript 中,我們需要確定是否設定了變數。

在這篇文章中,我們將學習如何檢查變數是否已設定。

isset 在 JavaScript 中的等價函式

JavaScript 提供了 typeof 運算子。它返回一個字串,指示未評估的運算元型別。當運算元型別未知時,此運算子很有用,並且根據型別,你可以執行下一個任務。

如果運算元型別是數字,則將數字相加,然後將字串連線起來。

語法:

typeof operand typeof (operand)

它需要一個表示必須返回其型別的基元或物件的表示式。根據傳遞給它的表示式,有八個結果。它可以是 undefinedstringsymbolfunctionobjectbooleannumberobject

有關更多資訊,請閱讀 typeof 的文件。

const inputObject = {
  id: 42,
  name: 'John Doe'
};

let phone

console.log(typeof inputObject.id !== 'undefined');
if ((typeof phone === 'undefined')) {
  phone = '7878787878';
}
console.log(phone);

在示例中,我們定義了物件 idname 的兩個屬性。當你檢查 typeof inputObject.id 時,它將檢查 id 屬性是否存在於 inputObject 中。要檢查相反的條件,請新增!在條件之前,它將否定檢查。

對於單個變數,你可以檢查它是否已設定。如果 phone 不存在,你可以將其新增到指定的值。

輸出將如下所示。

true
"7878787878"

在 JavaScript 中使用 in 運算子檢查是否設定了值

in 運算子是一種內建方法,用於驗證指定屬性是否屬於物件或其原​​型鏈。它重複物件並根據結果返回布林值。

語法:

prop in object

該函式將 prop 作為字串格式的輸入,它是一個必需的引數。此方法檢查指定的屬性或陣列索引是否存在於 Object 或原型鏈中。由於陣列是從物件派生的,因此也可以為陣列呼叫此方法。

有關更多資訊,請閱讀 in 運算子 方法的文件。

const inputObject = {
  id: 42,
  name: 'John Doe'
};

console.log('name' in inputObject);
if (!('country' in inputObject)) {
  inputObject.country = 'India';
}
console.log(inputObject);

在示例中,我們定義了物件 idname 的兩個屬性。如果你在 inputObject 中傳遞 name,它會檢查 inputObject 中是否存在 name 屬性。新增 !在條件前面驗證相反的條件,拒絕驗證。

如果物件中不存在新的 country 屬性,你可以新增它。輸出將如下所示。

true
{
  id: 42,
  name: "John Doe",
  country: "India"
}

在 JavaScript 中使用 Object.hasOwnProperty() 檢查值是否已設定

hasOwnProperty 也是一個內建方法,用於檢查指定的屬性是否存在於 Object 中。它重複物件並根據結果返回布林值。

語法:

Object.prototype.hasOwnProperty(prop);

該函式將 prop 作為 string 格式的輸入,並且是必需的引數。無論 Object 中的值如何,此方法都會檢查指定的屬性是否存在。

即使屬性的值為 nullundefined,它也會返回 true。這個方法也可以為一個 Array 呼叫,因為該陣列是從一個物件派生的。

有關更多資訊,請閱讀 hasOwnProperty() 方法的文件。

const inputObject = {
  name: 'John Doe'
};

console.log(inputObject.hasOwnProperty('name'));
if (!inputObject.hasOwnProperty('email')) {
  inputObject.email = 'Johndoe@gmail.com';
}
console.log(inputObject);

在示例中,我們定義了物件 idname 的兩個屬性。如果你通過 inputObject.hasOwnProperty ('name'),它將檢查 inputObject 中的 name 屬性是否存在。新增 !在條件前面驗證相反的條件,拒絕驗證。

如果物件中不存在新屬性,我們可以新增它。輸出如下所示。

true
{
  email: "Johndoe@gmail.com",
  name: "John Doe"
}

hasOwnPropertyin 運算子之間的區別在於,如果屬性在物件內繼承或未宣告,則 hasOwnProperty 返回 false。相反,in 運算子不驗證指定屬性中的物件 - 原型字串。

基類 Object 具有 hasOwnProperty 作為其函式,因此它返回 false,而 in operator 返回 true

Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn