gpt4 book ai didi

JavaScript: return 表达式后的语句会被执行?

转载 作者:行者123 更新时间:2023-11-30 10:24:09 26 4
gpt4 key购买 nike

这是我遇到的代码:

var foo=1;
function bar(){
foo=10;
return;
function foo(){}
}
bar();
alert(foo);

结果是1!

只是不知道为什么。

据我了解,第一行为window对象定义了一个全局变量'foo',值为1,然后在bar函数中将foo赋值为10,因为foo之前没有'var',所以全局变量'foo'将被赋值为10。然后返回,函数的其余部分将不会被执行。

但它提醒 1。

删除bar函数中的foo函数定义时,会提示10。

最佳答案

欢迎来到javascript 提升的神秘世界:) 阅读本文,你会得到启发:http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html

作为一个简短的回答:让事情像这样在 javascript 中工作:

hello();

function hello() {
alert('hello');
}

Javascript 首先将所有函数声明移动到代码的顶部,因此您可以在函数定义“之前”调用任何函数。我相信如果有函数声明,foo 不会更改为 10 的原因是因为它的行为类似于 var foo;。您在本地定义一个函数,因此当它运行 foo = 10; 时,您只是用值 10 覆盖本地定义的 function foo() >.

关于JavaScript: return 表达式后的语句会被执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20309259/

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