If语句-简单的javascript如果不工作

if statement - simple javascript if not working

本文关键字:javascript 如果不 工作 简单 语句 If      更新时间:2023-09-26

我是javascript的新手,我有一个看似简单的if/else语句的问题。

谁能告诉我为什么下面不工作请(我拔我的头发)

var is_expanded = false;
if (is_expanded==false) {
    alert('no');
    is_expanded = true;
} else {
    alert('yes');
}

我总是得到'no'警告(我从来没有得到else部分)。

谢谢你的帮助

一切正常

当您说if时,检查条件。然后它进入正确的块,在本例中是警告"no"的块。

在块执行后,条件不会被重新求值。这不是if语句的工作方式,在我所知道的任何语言中都不是。

取决于你想做什么,还有其他的模式和结构可以帮助你,例如while循环。

这是因为is_expanded总是等于false,因为您在if语句之前将其设置为false

else将不会触发,除非is_expanded在if语句之前等于true

上一行代码是var is_expanded = false;这意味着if (is_expanded==false)将始终求值为true

这就是你得到的输出。你想要什么?

下次调用相同的方法时,由于第一行代码,is_expanded的值再次重置为false。然后再次提醒no

这很正常。您已经将变量is_expanded设置为false,因此在if语句中您总是输入alert('no');部分。当您将变量设置为true,但不再执行任何if语句后

var is_expanded = false;
if (is_expanded==false) {
    alert('no');
    is_expanded = true;
} else {
    alert('yes');
}

恭喜你!你的代码工作得很好,所以不要再大惊小怪了。

IF/ELSE的本质是每次传递只触发其中的一个。因此,您的代码检查is_expanded是否为FALSE。如果它为假,它将运行If部分。如果不是,它将运行ELSE部分。

就像读英语一样。

If something, do this. Otherwise, do something else

即使您更改了其中一个块内变量的值,也不会有什么影响,因为一旦检查了该块,它就会继续前进。