In javascript, what are the “statement positions”?
我在本文中读到函数声明只能出现在语句位置。 我想知道这些"声明立场"是什么。
what are these"statement positions".
在代码中放置声明有效的位置。
句法结构分为几组,其中一组是语句。另一大组是表达。一般来说,你可以考虑那些表达式产生值之间的差异,而语句描述纯粹作为"副作用"做什么。
例如,
1 | if (<expression>) <statement> |
例如,加法运算符定义为
1 | <expression> + <expression> |
由于
1 | 42 + if(...) {} |
要了解有关哪些语句和表达式可用的更多信息,您可以查看规范,但不一定非常容易阅读。 YDKJS - 语法可能更容易理解。
I read that function declarations can appear only in statement position.
它实际上比那复杂一点。函数声明不是语句,它们是声明。官方声明仅在全局范围的顶级和函数声明中有效。但是,大多数环境允许在其他地方进行函数声明,遗憾的是以不同的方式评估这些情况。
因此,ECMAScript 6添加了兼容性规则来解释这种行为,但它不是应该依赖的东西。另请参阅为什么条件块中的函数声明在Chrome中升级到功能范围而不是Firefox? 。
当文章说"函数声明是一个声明。"时,那肯定是一种简化。