我刚开始通过“Eloquent JavaScript”一书学习 JavaScript,该书可在 eloquentjavascript.net 免费访问。到目前为止,我真的很喜欢这本书,只有一个部分我不明白。这是关于表达式和语句的:
http://eloquentjavascript.net/chapter2.html#p65af5913
我知道之前在 StackOverflow 上已经提到过这个话题,但是,这些是更具体的问题,而且我 - 坦率地说 - 并没有得到全部内容。
在段落的开头,作者解释了什么是表达式:如果我理解正确的话,像 42 或“23”这样的原子值被认为是表达式。如果将这些值应用于运算符(如 42 - 19),这也将被视为表达式。(我猜是因为它显然是 23,这又是一个原子值。)我这样解释:每个值——无论是直接输入还是尚未计算——都被称为表达式. 那是对的吗?
然后作者说:“存在一个比表达式更大的单元。它被称为语句。[...] 大多数语句以分号 (;) 结尾。最简单的语句是带有后面的分号。” 作为一个例子,他提到
!错误的;作为示例语句。我的问题是“是什么让这成为一个声明?只是最后的分号?” 当我使用 JavaScript 控制台时,无论是否输入分号,都完全没有区别。它总是返回 true。然而,作者说“[A] 声明只有在它以某种方式改变了世界的情况下才有意义。” 因此,给定的示例甚至不是一个语句,因为它“只是产生 [s] 值 [...] true,然后立即将 [s it] 扔到位桶中”?我现在真的很困惑......如果我没有完全把它搞砸,那么一个语句必须有一些“副作用”(比如一个变量的声明),对吧?
但是,如果有人可以解释什么是声明,我会很高兴。如果有人能举例说明这些术语的区别实际上是有用的,那也将非常有帮助,因为现在我什至无法想象作者为什么还要费心介绍这些词汇表。非常感谢您!