【问题标题】:Why does declaring a variable in console produce undefined as output? [closed]为什么在控制台中声明变量会产生未定义的输出? [关闭]
【发布时间】:2021-08-20 15:00:39
【问题描述】:

以下代码在javascript控制台中输入输出:

Input:"hello";
Output:"hello"
Input: js="hello";
Output: hello
Input:let js="hello";
Output: undefined

请解释这些值是如何返回的?

【问题讨论】:

  • 您应该发布您的确切完整代码。输入什么?从什么输出?
  • 正如 TG 建议的那样,发布呈现此控制台日志的代码。

标签: javascript console


【解决方案1】:

没有返回,但表达式解析为一个值。 语句 但是不解析为值。您在这里看到的是两者之间的区别。

文字值是一个表达式,它解析为自身:

"hello"

因为它是一个表达式,所以它可以在任何需要值的地方使用。例如:

if (x == "hello")

赋值操作也是一个表达式,它解析为被赋值的值:

js = "hello"

这可以在任何需要值的地方使用。例如:

if (x == (js = "hello"))

if 条件的结果是为变量js 赋值检查x 是否等于该值。

但是,声明变量不是表达式。这是一个声明。所以这 not 解析为一个值:

let js = "hello"

因此,它不能在任何需要值的地方使用。既然是语句,就必须作为自己的操作存在。

您在控制台中看到的输出只是您的代码解析为的打印值。该语句未解析为值,因此控制台打印 undefined

【讨论】:

  • 我认为这是一种不准确的陈述不返回值。如果你评估一个陈述,你确实会从中得到一个价值,而这些很可能都是陈述。
猜你喜欢
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
  • 2020-04-12
  • 2023-03-24
  • 2021-12-04
  • 2012-11-19
  • 2017-05-06
相关资源
最近更新 更多