局部变量和全局变量的区别

Differences between local and global variables

我正在寻找有关全局范围变量和局部范围变量之间区别的指导。谢谢。

全局变量 - 在程序开始时声明,它们的全局作用域意味着它们可以在程序中的任何过程或子程序中使用。

局部变量 - 在子程序或程序块中声明,它们的局部作用域意味着它们只能在声明它们的子程序或程序块中使用。

资源:Fundamentals of Programming: Global and Local Variables

资源:Difference Between Local and Global Variables

区别在于可以访问或修改变量的位置。 (例如在 class 的内容中)可以在 class 中的任何位置访问或修改全局变量。局部变量,如果在 class 中的函数中创建,则只能在该函数中使用。

这个网站提供了一个很好的解释: https://en.wikibooks.org/wiki/A-level_Computing/AQA/Problem_Solving,_Programming,_Data_Representation_and_Practical_Exercise/Fundamentals_of_Programming/Global_and_Local_Variables

以上 link 中的示例:

 1 Module Glocals
 2  Dim number1 as integer = 123  // global variable
 3  
 4  Sub Main()
 5      console.writeline(number1)
 6      printLocalNumber()
 7      printGlobalNumber()
 8  End Sub
 9  
10  Sub printLocalNumber
11      Dim number1 as integer = 234 // local variable
12      console.writeline(number1)
13  End Sub
14 
15  Sub printGlobalNumber
16      console.writeline(number1)
17  End Sub
18 End Module

输出将是: 123 234 123

全局范围变量可以在任何程序中使用。全局变量在任何函数之外声明。局部范围变量值仅适用于该特定范围(函数)。局部变量在该特定函数内部声明。

var fVariable = "Hello World";     //Global Scope Declaration

function printjs() {
    var sVariable = "Welcome";     //Local Scope Declaration
    console.log(sVariable);
    console.log(fVariable);
}

printjs();
console.log(fVariable);

这里你不能在函数外打印 sVariable 的值,因为它是一个局部变量。但是你可以在函数的外部和内部打印 fVariable 的值,因为它是一个全局变量