0

したがって、基本的には、空の文字列( "")trueを使用して等価性テストを実行したときにプログラムを返すようにします。0次に、エラーなしで次を使用できます。

0 == ""; // true

しかし、私は一致したくありません:

0 == null
0 == undefined
"" == null
"" == undefined

全員に返してもらいたいfalse。これはどのように可能ですか?このための演算子はないと思いますが、どういうわけかこれを機能させるために値を変更する方法はありますか?

4

3 に答える 3

1
function Equals(a,b) {

   if(a===b || (a===0 && b === "") || (a==="" && b === 0)) return true;
    return false;

}

jsfiddle の例を見ることができます。

于 2012-09-28T07:44:24.403 に答える
1
function eq(value) {
    return (value === 0 || value === "");
}
于 2012-09-28T07:44:42.887 に答える
0

答えは「そうではない」です。

それらをそのように互いに対立させて、それが機能することを期待することはできません。2 つのステートメントを
使用して使用しますが、 の代わりに , を使用します。 ||=====

double-operator は、異なる型へのキャストを試みます。
トリプル演算子では、それらが同じタイプである必要があります。

0 == "" // true
0 === "" // false


(testValue === 0 || testValue === "") // will return false for undefined/null/NaN/false
于 2012-09-28T07:46:04.020 に答える