输出在 JavaScript 中不带语句

output appears without statement in javascript

本文关键字:语句 JavaScript 输出      更新时间:2023-09-26

我是JS的初学者,我对console.log((略知一二。据我所知,我们使用console.log()来打印一些东西。在这里,我遇到了代码问题,但无法理解。下面给出了问题

   var understand = true;
   while( understand )
    {
      console.log("I'm learning while loops!");
      understand = false;
    }

我只使用一次控制台.log((,但这里出现了两个输出:

1. I'm learning while loops!
2. false

我的问题是为什么它打印false. 我没有使用任何语句来打印false所以它是如何出现的,为什么..?? 请求帮助我找出问题。谢谢

我假设您实际上是在控制台中尝试该代码?如果是这样,您会注意到,当您输入各个语句时,控制台会打印表达式的计算结果。

understand = false既设置该变量的值,又计算为 false

我进一步假设您已经一次将所有这些输入到控制台中,在这种情况下,控制台将显示任何console.log()语句的结果(当然(以及代码块中最后一个语句的值。请注意,如果您更改它,以便执行的最后一行执行其他操作,您将获得输出以外的其他内容false。例如,以下内容:

var understand = true;
while( understand )
{
   console.log("I'm learning while loops!");
   understand = false;
}
var x = 1;

。输出:

I'm learning while loops!
undefined

。因为如果将var x = 1;语句作为表达式,则undefined

当您在控制台中运行此代码时,它可能会输出 false。JS控制台一般输出赋值语句的值,如understand = false,在控制台中后跟false
从脚本文件运行此代码后,它不会记录false

代码没有问题。我猜你在开发人员控制台中执行代码。如果是,开发者控制台将打印您执行的代码的返回值。在您的情况下,它会打印 understand 的值。

nnnnnn 的答案应该接近事实,但我尝试过将var x = true添加到您的代码末尾,它仍然给出了打印在 Chrome 上的false

相反,如果你把x = true放在它后面(不带var(,它会打印 true,所以我认为它也与变量的范围有关。但我不确定。我认为这个问题值得讨论,而不是被否决。