我读in this article函数声明只能出现在语句位置。我想知道这些“声明职位”是什么。在JavaScript中,“声明职位”是什么?
0
A
回答
6
这些“声明位置”是什么。
的地方在它是有效的把声明代码。
句法结构被分成组,其中之一是陈述。另一大组是表达式。一般来说,您可以考虑表达式生成值,而陈述描述了纯粹称为“副作用”的内容。
例如,if
语句的结构是
if (<expression>) <statement>
一个if
语句的条件需要是表达和主体需要是语句。 A 陈述可以从来没有被置于表达式的位置,因为它不产生一个值。
例如,由于一个if
语句不表达式中的加法运算符被定义为
<expression> + <expression>
,你不能这样做
42 + if(...) {}
要了解更多关于哪些语句和表达式是可用的,你可以看看specification,但它不一定是一个简单的阅读。 YDKJS - Grammar可能会更容易理解。
我读的函数声明只能在语句中的位置出现。
它实际上比这更复杂一点。 函数声明不是语句,它们是声明。官方声明仅在全局范围的顶层和函数声明中有效。但是,大多数环境允许在其他地方使用函数声明,但不幸的是以不同方式评估这些情况。
因此,ECMAScript 6添加了兼容性规则来解释这种行为,但它不是应该依赖的东西。另请参阅Why is a function declaration within a condition block hoisted to function scope in Chrome but not Firefox?。
当文章说“函数声明是一个声明。“,那么这肯定是一个简化。
相关问题
- 1. 什么是声明
- 2. Javascript变量声明:什么是“var myVariable = {}”?
- 3. 什么是'不是声明'?
- 4. 在本声明中,按位&的功能是什么?
- 5. 为什么不是这个职位?
- 6. 什么是指针声明?
- 7. 这是什么声明?
- 8. 本声明中的问题是什么?
- 9. 本声明中'$'的功能是什么?
- 10. 什么是函数声明中的DEFAULT_CC?
- 11. 什么是以下Ninject声明中Structuremap
- 12. 这个类声明中使用的Javascript的形式是什么?
- 13. JavaScript函数声明中$操作符的用途是什么?
- 14. javascript中两个声明的区别是什么?
- 15. JavaScript中的函数声明之后的空括号()是什么?
- 16. 什么是JavaScript中的“影子标识符声明”?
- 17. C++什么放在一个类声明,什么不是
- 18. 为什么要在$(function(){...})中声明?
- 19. 为什么人们在JavaScript中声明为null?
- 20. 这两个函数声明在JavaScript中有什么区别?
- 21. 为什么变量在Javascript中的函数之前声明
- 22. 为什么在Javascript中包含变量声明for循环?
- 23. 之后如果声明什么都不会在javascript中触发
- 24. 为什么jslint喜欢在JavaScript中分割变量声明?
- 25. 当我们在JavaScript中声明Array(4)时会发生什么?
- 26. 在javascript中为什么我们使用var来声明变量?
- 27. 什么是关键词的几许的意义JavaScript的声明
- 28. 什么是JavaScript的语义的声明如果
- 29. 这两个不同的JavaScript声明的目的是什么?
- 30. 准备好的声明是什么?
有更多背景,你读什么? – David
地方它是有效的把语句。比如'如果()'的一个'if'声明需求主体是一个声明,而条件必须是一个表达式。但是,这其实不完全正确的。函数声明不声明和正式,并非在所有的语句位置有效,但大多数环境允许,但采用不同的评价规则TL;博士:。它的复杂 –
@大卫这是一个博客的文章,我不知道如果我能在这里分享的链接 – marco