ホームページ >ウェブフロントエンド >jsチュートリアル >Web 開発で属性を検出する方法
今回は、Web 開発で属性を検出する方法と、Web 開発で属性を検出するための 注意事項 について説明します。以下は実際のケースです。見てみましょう。
null (および未定義) が使用されるシナリオは、次のようなオブジェクト にプロパティが存在するかどうかをチェックする場合です。
// 不好的写法:检测假值if (object[propertyName]) {}// 不好的写法:和null相比较if (object[propertyName] != null) {}// 不好的写法:和undefined比较if (object[propertyName] != undefined) {}上記のコードの各判断は、実際には指定された名前の値によってチェックされます。属性値が 0、"" (空の プロパティが存在するかどうかを判断する最良の方法は、in
演算子を使用することです。 in 演算子は、属性が存在するかどうかを判断するだけであり、属性の値を読み取りません。これにより、このセクションで前述したあいまいなステートメントを回避できます。 in 演算子は、インスタンス オブジェクトのプロパティが存在する場合、または がオブジェクトのプロトタイプから を継承する場合に true を返します。例:
var object = { count: 0, related: null};// 好的写法if ("count" in object) { // 这里的代码会执行}// 不好的写法:检测假值if (object["count"]) { // 这里的代码不会执行}// 好的写法if ("related" in object) { // 这里的代码会执行}// 好的写法if (object["related"] != null) { // 这里的代码不会执行}インスタンス オブジェクトの特定のプロパティが存在するかどうかだけを確認したい場合は、hasOwnProperty() メソッドを使用します。 Object から継承するすべての JS オブジェクトにはこのメソッドがあり、このプロパティがインスタンスに存在する場合は true を返します (このプロパティがプロトタイプにのみ存在する場合は false を返します)。 IE8 以前のバージョンの IE では、
// 对于所有非DOM对象来说,这是好的写法if (object.hasOwnProperty("related")) { // 执行这里的代码}// 如果你不确定是否为DOM对象,则这样来写if ("hasOwnProperty" in object && object.hasOwnProperty("related")) { // 执行这里的代码}IE8 およびそれ以前のバージョンの IE の状況により、インスタンス オブジェクトのプロパティが存在するかどうかを判断するときに、in 演算子を使用することを好みます。 hasOwnProperty() は、インスタンスのプロパティを判断する必要がある場合にのみ使用されます。プロパティの存在を確認する必要がある場合は、in 演算子または hasOwnProperty() を使用します。こうすることで多くのバグを回避できます。 この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。 推奨書籍:
以上がWeb 開発で属性を検出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。