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
或者它被定义为nullvar emailFromUrl='
据我所知,console.log(…)返回未定义。您的字符串可能是空的。没有输出任何内容,它不是空的,它不是空的,它有一种字符串类型。听起来像是空字符串。@PitaJ。我感觉到,如果所有的行都是对的,他得到的是“null”
而不是null
。哦,还要检查一下它是否未定义,即emailFromUrl==undefinedIt实际上很简单:如果emailFromUrl
是真值(它是真的,因为它的否定是假的),它是一个字符串,当字符串化时,只有一个值将给出'null'
——是的,'null'
本身。)
if(!emailFromUrl) {
// handle the null scenario
}