3

奇妙な振る舞いをしているnull変数があります。どういうわけか、それがヌルかどうかを検出できないようです!varはと呼ばれemailFromUrlます。

   console.log(emailFromUrl); //returns null
   console.log(emailFormUrl.toString()); //returns null
   console.log(emailFromUrl === null); //false!
   console.log(emailFromUrl != null); //true!
   console.log(typeof emailFromUrl); //string
   console.log(!emailFromUrl); //false!
   console.log(emailFromUrl === ""); //false

ここで一体何が起こっているのですか?

答え:

   console.log(emailFromUrl === 'null'); //true!

フィルタリングされていないコンソールログ:

Test71 | emailFromUrl : null | emailFromUrl === null : false | emailFromUrl != null : true | emailFromUrl.toString() : null | typeof emailFromUrl : string | !emailFromUrl : false | emailFromUrl === "" : false | emailFromUrl === "null" : true
4

3 に答える 3

6

おそらくemailFromurl、値は単なるリテラルnull文字列ですか? ) これで、質問で得られるすべての結果が説明されると思います。

于 2012-06-08T16:02:15.970 に答える
1

=== 演算子は値と型をチェックします。emailFromUrl は null ではなく文字列型であり、そこで false と評価される理由です。

于 2012-06-08T15:58:48.400 に答える
0

null であることに基づく特定のロジックが必要でない限り、オブジェクトが「偽」であるかどうかを確認できます (オブジェクトが未定義、0、または null の場合)。

if(!emailFromUrl) {
    // handle the null scenario
}
于 2012-06-08T15:53:21.220 に答える