ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript を使用しないマスタリングまたはオペレーター

JavaScript を使用しないマスタリングまたはオペレーター

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-16 22:43:30930ブラウズ

Dominando o Operador in no JavaScript

オブジェクトのプロパティを確認する方法を確認します

JavaScript でプログラミングしている場合、オブジェクトに特定のプロパティが存在するかどうかを知りたい状況に遭遇したことがあるかもしれません。そこで in 演算子が役に立ちます。これがどのように機能するか、使用方法、そしてオブジェクトのプロパティを確認する他の方法よりも効率的である理由を説明します。

in演算子とは何ですか?

in 演算子は、オブジェクトにプロパティが存在するかどうかを確認するために JavaScript で使用されます。素晴らしいのは、オブジェクト内で直接定義されたプロパティだけでなく、プロトタイプから継承されたプロパティもチェックすることです。

構文は非常に簡単です:

'propriedade' in objeto;

プロパティが存在する場合は true を返し、存在しない場合は false を返します。単純そうに思えますよね?しかし、その有用性は単なるチェックを超えています。いくつかの例を見たいですか?

例 1: オブジェクトの直接所有権

まず、in 演算子を使用して直接プロパティをチェックする基本的な例を見てみましょう。

const carro = {
  marca: 'Toyota',
  ano: 2020
};

console.log('marca' in carro);  // true
console.log('modelo' in carro);  // false

ここには、ブランドと年式のプロパティを持つ車のオブジェクトがあります。 car で「brand」を使用すると、ブランドのプロパティがオブジェクトに直接存在するため、結果は true になります。このプロパティは定義されていないため、carro の 'model' は false を返します。

このタイプのチェックは、存在しないプロパティにアクセスしようとしたときのエラーを回避するのに最適です。存在しないプロパティにアクセスしようとしてコードが壊れてしまったことがありますか?もう! ?

例 2: プロトタイプから継承されたプロパティ

次に、in 演算子がプロトタイプから継承されたプロパティをどのように検出するかを見てみましょう

const pessoa = {
  nome: 'Ana'
};

console.log('toString' in pessoa);  // true

この場合、person オブジェクトには toString プロパティが直接ありませんが、この関数は Object.prototype から継承されます。 in 演算子はこれを確認して true を返します。

なぜこれが役立つのでしょうか?

オブジェクト内で継承された機能が利用可能かどうかを確認したい場合があります。これにより、より複雑な状況での対処が可能になります。

例 3: hasOwnProperty との比較

次に、プロパティを確認する別の方法である hasOwnProperty メソッドと比較してみましょう。プロパティがオブジェクト上で直接定義されたかどうかのみをチェックし、継承されたものは無視します。

const pessoa = {
  nome: 'Ana'
};
console.log(pessoa.hasOwnProperty('toString'));  // false
console.log('toString' in pessoa);               // true

このプロパティは person オブジェクトに直接存在しないため、hasOwnProperty メソッドは toString に対して false を返します。一方、in 演算子は継承されたプロパティも考慮するため、true を返します。

hasOwnProperty をいつ使用するか?

上級開発者に何かを尋ねるときに最も話題になるのは、それは状況によります

  • 直接か継承かにかかわらず、プロパティを確認したい場合は in を使用します。
  • プロトタイプから継承されたプロパティを無視して、プロパティがオブジェクト上で直接定義されていることを確認する必要がある場合は、hasOwnProperty を使用します。 プロパティの起源を気にする必要がない場合は、in 演算子の方がはるかに実用的ですが、どちらもプレイグラウンド内にその場所があるため、どの場所でどのような目的でそれが必要なのかを知る必要があるだけです。

以上がJavaScript を使用しないマスタリングまたはオペレーターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。