为什么变量声明的返回值是前一个语句的?
"some text"; var x = 10;
在控制台日志中产生“some text”。
任何人都可以解释为什么会这样。这个字符串实际存储在哪里,因为它打印出的值与我给出的输入无关。
提前致谢。
答案 0 :(得分:1)
总结在这个问题上积累的评论的雪堆:保罗爱尔兰昨天发推文:
JavaScript问题。为什么变量声明的返回值是前一个语句的? #confused
后跟此示例代码:
稍后,他转发了Brendan Eich的回复,其中字符串值代表语句完成值。
语句完成值的概念有点奇怪,因为它们在实际的JavaScript编程领域中并没有真正做任何事情。它是一个构造,指示运行时处理语句列表的方式。
在这种情况下,语句列表(在控制台中的一行上键入的语句列表)由表达式语句"omg";
和var
声明和初始化var x = 4;
组成。第一个表达式的完成值是表达式值,即字符串。 second 语句的完成值为空,构造语句列表的完成值的规则是该值应为字符串;基本上是最后一个不为空的陈述值。
现在,再说一遍:这些信息并不是特别有用。它确实解释了console
系统的工作原理,我想这很好。当然,就语言语义而言,它是重要的东西,它不会影响日常的编程任务。