Javascript IF语句,检测null无效

时间:2012-06-08 15:49:35

标签: javascript

我有一个表现奇怪的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

3 个答案:

答案 0 :(得分:5)

或许emailFromurl值只是文字null字符串?这将解释你在问题中得到的所有结果,我认为。

答案 1 :(得分:1)

以及===运算符检查值和类型。 emailFromUrl的类型为string not null,这就是为什么它在那里计算为false。

答案 2 :(得分:0)

除非您希望基于它的特定逻辑为null,否则可以检查对象是否为“falsy”(如果对象未定义,0或null)

if(!emailFromUrl) {
    // handle the null scenario
}