为什么在Node.js中模块级别的返回语句有效?

5 浏览
0 Comments

为什么在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不在任何函数内。

那么为什么它不会抛出错误呢?

0