火狐浏览器上的函数表达式 - 不是预期的结果
function expression on firefox - not expected result
if (true) {
function foo(){ return 1; }
}
else {
function foo(){ return 2; }
}
foo();
上面的代码是函数表达式的示例,在 Firefox 28 中返回 1,而在 Chrome 中返回 2(预期结果)。为什么火狐给出错误的结果?
这是功能提升的情况。任何声明具有相同函数名称的函数,该名称的最后一个函数都将获得优先级,即使它是 null 也会被使用。在大多数情况下,函数声明是在脚本执行之前处理的,但是,对于 Firefox,情况并非如此,它会在 if 块中获取它。
相关文章:
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- 试图将onChange函数作为道具传递给GrandChlidren,结果是TypeError:这是未定义的
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- 函数式javascript读取、异步、写入结果
- 函数hide()、prev()、show()被组装以获得所需的结果,但无法理解其工作原理
- JScript 错误: 无法分配给函数结果
- 仅在第一个结果中显示/隐藏MySQL结果函数
- 从Mongoose结果匿名函数返回父函数
- MeteorJS从上一个函数中检索JS中的结果
- 如何在函数外返回此操作的结果
- 将web服务回调的结果绑定到Javascript中的调用函数
- 原型中漂亮的代码,如何省略'不是函数'空结果选择器上的错误
- 如何在使用函数document.write()打印最终结果后,使用Javascript滚动到页面顶部
- 为什么我的javascript地理编码函数返回空白结果
- toFixed javascript函数给出奇怪的结果
- Node Express Handlebars帮助程序未返回函数的结果
- 正在等待HTTP调用从函数返回结果
- 如何根据JavaScript函数的结果用PHP编写数据库?(FB应用程序)
- Firebase 使用外部查询结果函数
- Javascript 全局数组在 JSON 结果函数中不可见