(函数表达式){使用分组运算符将函数表达式括起来}是否实际有效
Is (function expression) {Using grouping operator to surround a function expression} actually valid?
基于 2011 年 6 月 5.1 日的官方 ECMA-262 版标准:
语法摘要定义分组运算符(括号)只能包含一个表达式:
PrimaryExpression :
this
Identifier
Literal
ArrayLiteral
ObjectLiteral
( Expression )
表达式只能是赋值表达式(或这些表达式的序列)(滚动到第 A.3 节末尾)
Expression :
AssignmentExpression
Expression , AssignmentExpression
因此,根据ECMA-262版本5.1,以下内容应该是不正确的:(FunctionExpression)
。
经过一番挖掘,我发现它实际上是有效的。这是完整的推导(要追溯它,请转到第 A.3 节的末尾,并从 Expression
开始向上跟踪推导:
Expression -> AssignmentExpression -> ConditionalExpression ->
LogicalORExpression -> LogicalANDExpression ->
BitwiseORExpression -> BitwiseXORExpression ->
BitwiseANDExpression -> EqualityExpression ->
RelationalExpression -> ShiftExpression -> AdditiveExpression ->
MultiplicativeExpression -> UnaryExpression ->
PostfixExpression -> LeftHandSideExpression -> NewExpression ->
MemberExpression -> FunctionExpression
相关文章:
- 能够在定义函数表达式之前使用它
- 函数表达式,返回回调函数
- JavaScript中的立即调用函数表达式(IIFE)-传递jQuery
- 函数声明与函数表达式之间的性能差异
- 立即调用函数表达式(IIFE)相对于普通函数的优势
- 如何防止 JS 缩小删除命名函数表达式的名称
- Angularjs 与 coffeescript 函数表达式中断
- JavaScript 混乱中的函数表达式
- 从ES6中的函数表达式访问类作用域
- 提升作为数组项的匿名函数表达式
- Javascript Mocha测试-测试函数表达式中的函数表达式
- 函数中的JavaScript函数表达式
- Javascript闭包覆盖函数表达式
- 函数表达式的词法作用域
- 请解释一下“;立即调用函数表达式“;以及“;自调用匿名函数”;
- JavaScript 中的函数语句和函数表达式
- ng-class 的函数表达式在 ng-click 时被调用
- 如何创建名称和主体存储在不同变量中的 JavaScript 函数表达式
- Object.Prototype 方法和 IIFE(立即调用的函数表达式)中的“use strict”
- 全局范围内的函数表达式与函数声明的区别