gpt4 book ai didi

Javascript 基础知识 : variable scope

转载 作者:行者123 更新时间:2023-11-29 10:23:53 25 4
gpt4 key购买 nike

我正在学习 javascript,有人可以为我解释以下代码片段吗?


var state=true;
function bob(){ var state=false; }
bob()

状态值应该是多少,为什么?

非常感谢,大号

最佳答案

在执行结束时,state 将为true,因为函数bob() 定义了一个名为state 的局部变量 而不是分配给同名的全局变量。但是,在以下示例中,state 将为 false:

var state=true;
function bob(){ state=false; }
bob();

通过省略 var 关键字,JavaScript 引擎将沿着作用域链向上移动,寻找名为 state 的变量,直到找到一个或到达全局作用域。这可以用嵌套函数进一步证明:

var state = true; // global
function bob() {
var state = true; // local to `bob()`
function jim() {
state = false;
}
jim();
alert(state); //-> false, `jim()` modifies `bob()`'s variable
}
bob();
alert(state); //-> true, `jim()` and `bob()` don't touch the global variable

关于Javascript 基础知识 : variable scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6043131/

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