0

我是 JS 的初学者。我对console.log() 了解一些。据我所知,我们console.log()用来打印一些东西。在这里我在代码中遇到问题但无法得到它。问题如下

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

我只使用一次 console.log() 但这里出现两个输出:

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

我的问题是它为什么打印false。我不使用任何声明来打印false,所以它怎么会出现,为什么..??请求帮助我解决问题。谢谢

4

4 回答 4

4

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

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视为表达式。

于 2013-06-28T08:37:23.853 回答
1

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

于 2013-06-28T08:37:19.903 回答
0

nnnnnn 的答案应该接近事实,但我已经尝试var x = true在您的代码末尾添加,它仍然会false打印在 Chrome 上。

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

于 2013-06-28T08:36:43.057 回答
0

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

于 2013-06-28T08:37:41.797 回答