if (0==0){console.log(true)}
预期:true 结果:true
if (0==1){console.log(true)}
预期:未定义结果:未定义
var c = "0==1";
if (c){console.log(true)}
预期:未定义结果:true
如何在第三个语句中获得“未定义”结果?就像第二个声明一样。
答案 0 :(得分:1)
“0 == 1”是有效字符串
你应该使用
var c = 0==1;
答案 1 :(得分:1)
您的字符串"0==1"
非空或null,因此它将通过if test
您可以使用评估字符串的eval函数。
var c = "0==1";
if (eval(c)){console.log(true)}
或者你可以说c = 0==1;
,但最好写c = false;
,不是吗?
答案 2 :(得分:0)
如何在第三个语句中获得“未定义”结果?就像第二个陈述一样。
我不特别推荐这个,但是 - 您可以使用eval
,它在其字符串参数中解析和评估JavaScript代码:
var c = "0==1";
if (eval(c)){console.log(true)}
有关详细信息,请参阅the 'eval()' page on MDN。
答案 3 :(得分:0)
在javascript中有预定义的FALSY
值,其他一切都是TRUTHY
值。所以" 0 == 1"变为TRUTHY
值。
FALSY 值:
答案 4 :(得分:0)
var c = "0==1";
if (c){console.log(true)}
c现在的值为“0 == 1”,这是一个字符串。如果您想获得未定义的值,请执行以下操作:
//c now has a variable reverence but an undefined (null) value
var c = undefined;
if (c){console.log(true)}
未定义基本上意味着该对象不存在。在您的情况下,值c确实存在,因为您创建了一个包含文本的字符串:“0 == 1”。
我希望这是有道理的。