我认为以下内容可行,无论是x
是声明还是赋值:
if (x)
console.log("x is well defined");
else
console.log("x is not defined or null or false or 0 ...");
但是,我得到了(当我的代码中没有声明x
时):
未定义
为什么会这样?
(这是在Node.js环境中。)
答案 0 :(得分:0)
据我所知...... 如果我们看到x的值是未定义的'所以它会给出一个TypeError!
If u see this..
if(typeof x === 'undefined')
console.log("x is well defined");
这将给出" x定义良好的输出" 如果我从你的问题中得到了别的东西,请纠正我! :)
答案 1 :(得分:0)
运行if(x)
时,x
已检查且未定义,因此if / else表示无效,JavaScript遇到未捕获错误。
你可以把它放在一个try / catch中它会捕获错误,但是你的if / else不会记录任何东西。相反,你需要做类似的事情:
if (typeof x !== 'undefined')
console.log("x is well defined");
else
console.log("x is not defined or null or false or 0 ...");
或者,如果您还需要检查“x”是否真实,您可以使用:
if (typeof x !== 'undefined' && x)
console.log("x is well defined");
else
console.log("x is not defined or null or false or 0 ...");
答案 2 :(得分:0)
如果你没有在if(x)语句的范围内声明x,则会有引用错误。
为避免这种情况,只需声明var x;在if(x)语句或其父范围的范围内。
现在,如果您只是声明:
var x;
此处x的值未定义,因此其他部分将被执行。
但是如果你定义如下:
var x = 1;
然后if语句为true,输出将是x定义良好
这里是jsfiddle:https://jsfiddle.net/raushankumar0717/4ozmf7r5/
var x=1;
if(x)
alert("Defined");
else
alert("Not Defined");