我是使用JS的初学者,现在我正在开发一个项目,我必须解释我使用过哪些全局变量和局部变量,我不确定哪些变量是全局变量,哪些是本地变量。我知道函数内部存在的变量是局部变量,但我有以下内容:
onload=function(){
var ctx=document.getElementById("canvas").getContext("2d");
};
我的变量ctx
是否在函数内?我不确定,因为我已经使用onload
,我不知道ctx
是全局变量还是局部变量?
答案 0 :(得分:1)
您正在为变量分配函数(分配给变量没有区别,即使未分配函数,它仍会创建范围),这为ctx
提供了一个功能范围。匿名函数与命名函数没有不同的范围
答案 1 :(得分:1)
ctx
位于函数内部,这意味着它不是全局变量。
答案 2 :(得分:0)
请注意,它是在函数内声明 。这意味着变量的范围是函数,这使得它是本地的,正确的。查找var
声明的位置。
全局变量可以从程序中的任何位置访问,并且与其余代码具有相同的生命周期。它们在任何函数范围之外声明。
答案 3 :(得分:0)
在函数内创建的任何变量都是局部变量。这意味着它只会在你进入函数之前出现,即在执行函数时,并且不能从外部访问。并且在函数外部声明的任何变量都是全局函数,因为它可以在函数内轻松访问。因此,在您的情况下,因为变量ctx
已在函数内声明,因此它是局部变量。请参阅下面的链接,了解有关全局变量的更多详细信息