gpt4 book ai didi

javascript - 不理解局部变量和全局变量的概念

转载 作者:行者123 更新时间:2023-11-28 13:00:41 25 4
gpt4 key购买 nike

好吧,只是快速的...我真的完全不理解范围。每当我将变量放入未定义的函数中时,请执行一些操作。这似乎是在函数外部声明它的唯一方法。那么什么给出呢?我是否只是误解了局部变量和全局变量的概念?因为似乎全局变量是唯一有效的......

编辑:

简单的例子...

let a = 'something';
function myFunction() {
// Code block
};

这有效👆

但是以下给出了 undefined variable :

function myFunction() {

let a = 'something';

// Code block
};

最佳答案

首先让我们看一下局部变量和全局变量之间的区别。

LOCAL VARIABLES - Any variable defined inside of a function or loop. If the variable is defined in a certain function/loop, it can only be accessed in that function/loop.

例如:

function number() {
let a = 0;

// Can access a here.
}

// Cannot access a here.

GLOBAL VARIABLES - Any variable that is not defined inside of any function or loop. These variables can be accessed anywhere.

例如:

let b = 0;
function number() {
// b can be accessed here.
}
// b can be accessed here.

变量的作用域是可以访问它的位置。例如,在function number()内部定义的局部变量的作用域是number() 函数,因为它只能在那里访问。

还有一件事(归功于 Mikael Lennholm)var 不会将变量的作用域限定为循环(或任何非函数语句 block ),它仅将其限定为当前函数。要将变量的范围限定到任何语句 block ,您必须使用 let/const

现在让我们看看您的示例:

这是第一个示例:

let a = 'something';
myFunction();
function myFunction() {
console.log(a);
};

效果很好,这就是你所说的。

这是您所说的第二个示例,不起作用:

function myFunction() {

let a = 'something';

console.log(a);
};

myFunction();

但是,如果您单击运行按钮,您实际上会看到它确实有效,并且确实被记录下来。如果您在此之后在控制台中检查变量 a 是什么,它当然是未定义的,因为 a 只能在 myFunction() 中访问 函数,而控制台不在该函数中。

你说脚本不起作用,很可能是因为其他原因(如果是因为这个原因,控制台中会出现错误)。您可以尝试在这里发布网站,我可以帮助您。

希望这对您有帮助:)

关于javascript - 不理解局部变量和全局变量的概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50918394/

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