为什么在Node.js中模块级别的返回语句有效?
- 论坛
- 为什么在Node.js中模块级别的返回语句有效?
5 浏览
为什么在Node.js中模块级别的返回语句有效?
当我回答另一个问题时,我遇到了一个具有顶级return
语句的Node.js模块。例如:
console.log("Trying to reach"); return; console.log("dead code");
这在没有任何错误的情况下工作,并在标准输出中打印:
Trying to reach
但不会打印"dead code
" - 实际上,return
终止了执行。
但根据ECMAScript 5.1中return
语句的规范,
语义
如果ECMAScript程序包含不在
FunctionBody
内的return
语句,则被认为是语法错误。
在上面的程序中,return
不在任何函数内。
那么为什么它不会抛出错误呢?