Javascript IF语句,检测到null无效

Javascript IF语句,检测到null无效,javascript,Javascript,我有一个行为怪异的空变量。由于某种原因,我似乎无法检测它是否为空!该变量称为emailFromUrl console.log(emailFromUrl); //returns null console.log(emailFormUrl.toString()); //returns null console.log(emailFromUrl === null); //false! console.log(emailFromUrl != null); //true! c

我有一个行为怪异的空变量。由于某种原因,我似乎无法检测它是否为空!该变量称为
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

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


操作符检查值和类型。emailFromUrl的类型为string not null,这就是它在此处计算为false的原因。

也许
emailFromUrl
值只是一个文本
null
字符串?)我认为,这将解释您在问题中得到的所有结果。

如果您运行这个
console.log(typeof emailFromUrl),会发生什么情况?您上一个日志清楚地显示它不等于空值。您在说什么类型的空值?你是说你已经定义了它,但它还没有定义
var emailFromUrl
或者它被定义为null
var emailFromUrl='
据我所知,console.log(…)返回未定义。您的字符串可能是空的。没有输出任何内容,它不是空的,它不是空的,它有一种字符串类型。听起来像是空字符串。@PitaJ。我感觉到,如果所有的行都是对的,他得到的是
“null”
而不是
null
。哦,还要检查一下它是否未定义,即emailFromUrl==undefinedIt实际上很简单:如果
emailFromUrl
是真值(它是真的,因为它的否定是假的),它是一个字符串,当字符串化时,只有一个值将给出
'null'
——是的,
'null'
本身。)
if(!emailFromUrl) {
    // handle the null scenario
}