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

Mary-Kate Olsen
リリース: 2024-10-16 22:43:30
オリジナル
780 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!