Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';IF语句Javascript中有条件变量吗?_Javascript_If Statement - Fatal编程技术网

为什么可以';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”
是一个字符串。非空字符串变为true
var 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)}