gpt4 book ai didi

javascript - 声明前可访问 Javascript 中的命名函数,但函数文字不是

转载 作者:搜寻专家 更新时间:2023-11-01 05:22:17 26 4
gpt4 key购买 nike

<分区>

我正在尝试弄清楚这是如何工作的。当我引用一个尚未声明的命名 Javascript 函数时,在某些情况下,它可以工作。但是如果我使用函数文字,它不会,但它也不会因 ReferenceError 而失败。

function works() {
var works_ref = foo;
function foo() {
console.log('ok');
};
console.log('works ' + works_ref);
}

function fails() {
var fails_ref = foo;
var foo = function() {
console.log('ok');
};
console.log('fails ' + fails_ref);
}

works();
fails();

返回

"works function foo() {
console.log('ok');
}"
"fails undefined"

我想知道第一个示例是如何工作的——这是一种解释型语言,没有编译,所以我希望任何类型的前向引用都会失败——为什么第二个示例不生成 ReferenceError?

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