JavaScriptオブジェクトの識別及び等しい判定
1328 ワード
1.コンピュータシステムwindows 10の専門版2.開発の過程で、私達はよくjsを使って判定します.次に私が出会った問題と簡単なまとめを共有します.3.ECMAScript 6の前には、たとえ==操作子でも無力な場合があります.3-1.これらは==が予想に合致する場合*
console.log(true === 1); // false
console.log({}==={}); //false
console.log("2"===2); //false
3-2.これらの状況はJavaScriptエンジンによって異なりますが、まだ同等とされています.console.log(+0===-0); // false
console.log(+0===0); //true
console.log(-0===0); true
3-3.NaNの等しい性を決定するには、極めて嫌なisNaN()を使用しなければならない.console.log(NaN===NaN); //false
console.log(isNaN(NaN)); //true
3-4.このような状況を改善するために、ECMAScript 6仕様にObject.is()が追加されました.この方法は==に似ていますが、上記境界の状況も考慮しました.この方法は二つのパラメータを受け入れる必要があります.console.log(Object.is(true,1)); // false
console.log(Object.is({},{})); // false
consoe.log(Object.is("2",2)); // false
3-5.正しい0\-0\+0が等しい/判定がないconsole.log(Object.is(+0,-0)); //false
console.log(Object.is(+0,0)); // true
console.log(Object.is(-0,0)); //false
3-6.正しいNaN等しい判定console.log(Object.is(NaN,NaN)); //true
3-7.2つ以上の値を検査し、再帰的に同等性の伝達を利用すればよい.function recursivelyCheckEqual(x,...rest){
return Object.is(x,rest[0]) && (rest.length<2 || recursivelyCheckEqual(...rest));
}
4.今期のシェアはここで終わりました.ニコニコしていますか?あなたを助けたいです.一緒にピークに向かって頑張りましょう.