{}
置き換える必要があるパラメーターを呼び出す API があります。しかし、次のような問題があります... 以下で何が起こるか分かりますか?
const log = console.log
const a = {}
log('a is ', a)
// cannot compare with either == or ===
if (a == {}) {
log('a is {}')
} else {
log('a is NOT {}')
}
// a is truthy too
const b = (a || 'not a')
console.log('b is ', b)
それで、その両方が真実であり、比較に失敗したことを考えると、それを置き換える方法を考えていますか?
また、内部でどのようなオブジェクト比較が行われているのかを知りたいです。
私の理解は次のとおりでした:
==
値が等しいかどうかをテスト (比較)===
参照によって等しいかどうかテストされます (メモリ内の同じオブジェクトへのポインター)。
しかし、オブジェクトの実際の比較を行う必要があると思いますか? 私はこれをユニットテストフレームワークで行うことに慣れてtoBe()
いtoEqual
ますtoDeepEqual
。
そして、ワット!