我正在维护一些旧代码,我注意到有很多实例,旧程序员将return;
语句作为其大多数函数的最后一行。这有什么好处吗?我觉得这是浪费空间,所以当我看到它时,我一直在移除它们。其中一个通常更快吗?
答案 0 :(得分:2)
来自ECMAScript Language Specification:
调用Function对象 F 的[[Call]]内部方法时 使用此值和参数列表,以下步骤是 采取:
- 让 funcCtx 成为使用 F 的[[FormalParameters]]内部值为函数代码建立新执行上下文的结果 property,传递的参数List args , this 值为 在10.4.3中描述。
- 让结果为评估 F 的[[Code]]内部属性 FunctionBody 的结果。如果F没有[[代码]] 内部属性或其值是空的 FunctionBody ,然后 结果是(正常,未定义,空)。
- 退出执行上下文 funcCtx ,恢复以前的执行上下文。
- 如果结果 .type为throw,则抛出结果 .value。
- 如果结果 .type返回,则返回结果 .value。
- 否则结果 .type必须正常。返回未定义。
醇>
换句话说,如果被调用的函数没有明确的return
语句,那么它会隐式返回undefined
。
答案 1 :(得分:0)