这是一个本地变量还是全局变量?

时间:2014-06-15 20:03:59

标签: javascript variables global local

我是使用JS的初学者,现在我正在开发一个项目,我必须解释我使用过哪些全局变量和局部变量,我不确定哪些变量是全局变量,哪些是本地变量。我知道函数内部存在的变量是局部变量,但我有以下内容:

onload=function(){
    var ctx=document.getElementById("canvas").getContext("2d");
};

我的变量ctx是否在函数内?我不确定,因为我已经使用onload,我不知道ctx是全局变量还是局部变量?

4 个答案:

答案 0 :(得分:1)

您正在为变量分配函数(分配给变量没有区别,即使未分配函数,它仍会创建范围),这为ctx提供了一个功能范围。匿名函数与命名函数没有不同的范围

答案 1 :(得分:1)

ctx位于函数内部,这意味着它不是全局变量。

答案 2 :(得分:0)

请注意,它是在函数内声明 。这意味着变量的范围是函数,这使得它是本地的,正确的。查找var声明的位置。

全局变量可以从程序中的任何位置访问,并且与其余代码具有相同的生命周期。它们在任何函数范围之外声明。

答案 3 :(得分:0)

在函数内创建的任何变量都是局部变量。这意味着它只会在你进入函数之前出现,即在执行函数时,并且不能从外部访问。并且在函数外部声明的任何变量都是全局函数,因为它可以在函数内轻松访问。因此,在您的情况下,因为变量ctx已在函数内声明,因此它是局部变量。请参阅下面的链接,了解有关全局变量的更多详细信息

http://snook.ca/archives/javascript/global_variable

相关问题