gpt4 book ai didi

javascript - Firefox:函数提升错误

转载 作者:数据小太阳 更新时间:2023-10-29 05:25:59 24 4
gpt4 key购买 nike

我曾经假设函数总是被提升到任何 JavaScript 代码块的顶部。

例如,这个有效:

document.addEventListener('something', dummy);
function dummy(){
console.log('dummy');
}

但这在 Firefox 中不起作用并抛出 ReferenceError,但在 Chrome 中有效:

if(document){        
document.addEventListener('something', dummy1);
function dummy1(){
console.log('dummy');
}
}

Fiddle code

最初,我假设 Chrome 在我测试之前也会抛出错误,但不知何故它工作正常。有人可以解释为什么它在 Firefox 中不起作用吗?

最佳答案

这似乎已经成为一个问题很长一段时间了 - 这是 2011 年的引用资料:http://statichtml.com/2011/spidermonkey-function-hoisting.html

显然,Firefox 会愉快地提升 block 外的函数声明,但不会在 block 内这样做。链接文章的作者认为这(虽然出乎意料)符合 ECMA-262 spec ,它只允许 block 内的语句......因为函数声明不是语句。但是,我会注意到 Firefox 很高兴地允许 block 内的函数声明 - 它只是拒绝提升它们。

关于javascript - Firefox:函数提升错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29812849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com