为什么可以';IF语句Javascript中有条件变量吗?
预期结果:正确结果:正确为什么可以';IF语句Javascript中有条件变量吗?,javascript,if-statement,Javascript,If Statement,预期结果:正确结果:正确 if (0==0){console.log(true)} 预期结果:未定义结果:未定义 if (0==1){console.log(true)} 预期结果:未定义结果:真实 如何在第三条语句中得到“未定义”的结果?就像第二句话一样 “0==1”是有效字符串 你应该使用 var c = "0==1"; if (c){console.log(true)} 如何在第三条语句中得到“未定义”的结果?就像第二句话一样 我并不特别推荐这样做,但是-您可以使用eval,它在字符
if (0==0){console.log(true)}
预期结果:未定义结果:未定义
if (0==1){console.log(true)}
预期结果:未定义结果:真实
如何在第三条语句中得到“未定义”的结果?就像第二句话一样 “0==1”是有效字符串
你应该使用
var c = "0==1";
if (c){console.log(true)}
如何在第三条语句中得到“未定义”的结果?就像第二句话一样
我并不特别推荐这样做,但是-您可以使用eval
,它在字符串参数中解析和计算JavaScript代码:
var c = 0==1;
有关详细信息,请参阅。您的字符串“0==1”
为非空或null,因此它将通过if测试
您可以使用eval函数来计算字符串
var c = "0==1";
if (eval(c)){console.log(true)}
或者你可以说
c=0==1代码>但最好写c=false代码>,而不是?在javascript中有预定义的FALSY
值,其他所有值都是TRUTHY
值。所以“0==1”变成了TRUTHY
值
FALSY值:
- 错
- 0(零)
- “”(空字符串)
- 空李>
- 未定义李>
- NaN(表示非数字的特殊数字值!)
c现在有一个值“0==1”,这是一个字符串。如果要获取未定义的值,请执行以下操作:
var c = "0==1";
if (c){console.log(true)}
未定义基本上意味着对象不存在。在您的例子中,值c确实存在,因为您创建了一个文本为“0==1”的字符串
我希望这是有道理的 “0==1”
是一个字符串。非空字符串变为truevar c=0==1
当前c
是否为string如何将“c”转换为条件?变量和字符串的工作方式与复制和粘贴代码不同。字符串不作为代码计算。字符串是真的,句点。顺便说一句,第二个结果不是未定义的,它会导致false,因此没有日志。未定义并不意味着“对象不存在”。在您的示例中,c
很好地存在<代码>未定义
表示未定义
,不多不少。某些表达式将生成未定义的
值(如访问对象的不存在属性),但未定义的
值只是一个值。如果我错了,请更正,但据我的理解,变量存在,但对象不存在!这是不同的。对象是实例(在内存中),变量是对对象的引用。在他的情况下,对象不存在。看:在没有任何对象的情况下谈论“the”对象是很奇怪的。变量保存(指向/引用)一个值。如果一个变量包含一个对象,那么该值就是一个对象。如果变量包含值未定义
,则该值为未定义
。如果一个变量持有未定义的值,那么它就不持有对象(d'uh)。啊,公平点。它是一个基本值,不是一个对象。我会更新我的答案。谢谢你指出这一点。
var c = "0==1";
if (c){console.log(true)}
//c now has a variable reverence but an undefined (null) value
var c = undefined;
if (c){console.log(true)}