ナレッジ ポイントの小計。オブジェクトが空のオブジェクト、つまり属性のないオブジェクト {} か
どうかを判断したい場合があります。使いたい
obj == null
? 、
ふざけるのはやめてください、明らかに私はそのつもりではありませんでした。
何?これをもう一度使用しますか?
obj == {
}
忘れてください。コードの一部をお見せしましょう。
let obj={
};
return obj == {
}
このコードは true を返しますか? 目の鋭い学生なら一目でわかるはずです。まったく同じに見える 2 組の中括弧を見ないでください。ただし、これらは間違いなく false を返します。詳しく説明しましょう: JavaScript では
、 obj = {} として空のオブジェクトを作成し、このオブジェクトを別の空のオブジェクト {} と比較すると false を返します。これは、JavaScript ではオブジェクトが内容ではなく参照に基づいて比較されるためです。
2 つの異なるオブジェクトは、メモリ内の参照アドレスが異なるため、同じ内容であっても等しくないとみなされます。
実際、このコード行はどのような状況でも true ではありません。では、このオブジェクトが空のオブジェクトであるかどうかをどのように判断すればよいでしょうか? 次の方法があります。
方法 1 (推奨)。オブジェクトが空のオブジェクトかどうかを確認するには、Object.keys(obj) を使用してプロパティがあるかどうかを確認します。
let obj = {
};
let isEmpty = Object.keys(obj).length === 0;
console.log(isEmpty); // true
方法 2 (非推奨) では、JSON.stringify(obj) を使用してオブジェクトを文字列に変換し、その文字列が "{}" であるかどうかをチェックして、オブジェクトが空のオブジェクトかどうかを判断することもできます。ただし、この方法は、関数または循環参照を含むオブジェクトに対しては機能しない可能性があることに注意してください。
let obj = {
};
let isEmpty = JSON.stringify(obj) === "{}";
console.log(isEmpty); // true
読まないで、すぐに保存してください。記事は削除しません、心配しないでください。