JavaScript で isset 相当の機能

Shraddha Paghdar 2023年10月12日
  1. JavaScript で isset 相当の機能
  2. JavaScript で in 演算子を使用して値が設定されているかどうかを確認する
  3. JavaScript で Object.hasOwnProperty() を使用して値が設定されているかどうかを確認する
JavaScript で isset 相当の機能

PHP は、変数が設定されているかどうかを判別する関数 isset を提供します。これは、変数が宣言され、null 以外の値が割り当てられている場合を意味します。変数が null に割り当てられると、isset() は false を返します。JavaScript では、変数が設定されているかどうかを判断する必要があります。

この記事では、変数が設定されているかどうかを確認する方法を学びます。

JavaScript で isset 相当の機能

JavaScript は typeof 演算子を提供します。評価されなかったオペランドタイプを示す文字列を返します。この演算子は、オペランドの型が不明な場合に役立ちます。型によっては、次のタスクを実行できます。

オペランドタイプが数値の場合、数値を加算すると、文字列が連結されます。

構文:

typeof operand typeof (operand)

型を返す必要のあるプリミティブまたはオブジェクトを表す式が必要です。渡された式に応じて、8つの結果があります。undefinedstringsymbolfunctionobjectbooleannumber、または object のいずれかになります。

詳細については、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 の 2つのプロパティを定義しました。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 の 2つのプロパティを定義しました。inputObjectname を渡すと、name プロパティが inputObject に存在するかどうかがチェックされます。追加 !条件の前で反対の条件を検証し、検証を拒否します。

オブジェクト内に存在しない場合は、新しい country プロパティを追加できます。出力は次のようになります。

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

JavaScript で Object.hasOwnProperty() を使用して値が設定されているかどうかを確認する

hasOwnProperty は、指定されたプロパティが Object に存在するかどうかをチェックする組み込みメソッドでもあります。オブジェクトを繰り返し、結果に応じてブール値を返します。

構文:

Object.prototype.hasOwnProperty(prop);

この関数は、文字列の形式で入力として prop を取り、必須パラメーターです。このメソッドは、Object の値に関係なく、指定されたプロパティが存在するかどうかをチェックします。

プロパティの値が null または undefined の場合でも、true を返します。配列はオブジェクトから派生しているため、このメソッドは配列に対して呼び出すこともできます。

詳細については、hasOwnProperty() メソッドのドキュメントを参照してください。

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

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

この例では、オブジェクト idname の 2つのプロパティを定義しました。inputObject.hasOwnProperty ('name') を渡すと、inputObject の name プロパティが存在するかどうかがチェックされます。条件の前に!を付けると、逆の条件で検証を拒否します。

オブジェクトに存在しない場合は、新しいプロパティを追加できます。出力を以下に示します。

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

hasOwnProperty 演算子と in 演算子の違いは、プロパティがオブジェクト内で継承されているか、宣言されていない場合、hasOwnProperty が false を返すことです。対照的に、in 演算子は、指定されたプロパティ(プロトタイプ文字列)のオブジェクトを検証しません。

基本クラス Object はその関数として hasOwnProperty を持っているため、false を返し、in 演算子は 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