JavaScript中的全局变量和局部变量有什么区别?如何使用?

2021年4月3日19:09:43 发表评论 869 次浏览

变量:它保存可以随时更改的数据或信息。 JavaScript使用保留关键字var声明变量。在JavaScript中, 变量有两种类型,:全局变量和局部变量它还告诉你可以在程序中的什么位置使用定义的变量和函数。但是全局变量和局部变量有什么区别呢?下面为你解析。

局部变量:使用JavaScript时, 局部变量是在函数内定义的变量。它们具有局部范围, 这意味着它们只能在定义它们的函数中使用。

全局变量:相反, 全局变量是在函数外部定义的变量。这些变量具有全局作用域, 因此任何函数都可以使用它们, 而无需将它们作为参数传递给函数。

局部变量:由于局部变量是在函数内部定义的, 因此具有相同名称的变量可以在不同的函数中使用。

全局变量和局部变量有什么区别?下面我们先来看看这个例子,试着区分一下它们的区别,示例如下:

<!DOCTYPE html>
<html>
  
<body>
     <center>
         <h1 style= "color:green;" >lsbin</h1>
  
         <p>Outside myfunction() petName is not defined.</p>
  
         <p id= "Geeks" ></p>
  
         <p id= "geeks" ></p>
  
         <script>
             myfunction();
  
             function myfunction() {
                 var petName = "Sizzer" ; // local variabl
                 document.getElementById( "Geeks" ).innerHTML =
                     typeof petName + " " + petName;
             }
  
             document.getElementById( "geeks" ).innerHTML =
                 typeof petName;
         </script>
   </center>
  
</body>
  
</html>

输出如下:

JavaScript中的全局变量和局部变量有什么区别?如何使用?

上面的示例说明了局部变量的用法。但是, 该函数之外的语句不能引用名为petName的变量而不会引起错误。那是因为它具有本地范围。

全局变量:由于全局变量是在函数外部定义的, 因此具有相同名称的变量不能在不同的函数中使用。网页上的所有脚本和功能都可以访问它。

例子:

<!DOCTYPE html>
<html>
  
<body>
     <center>
         <h1 style= "color:green;" >lsbin</h1>
  
         <p>A GLOBAL variable can be accessed from 
                             any script or function .</p>
  
         <p id= "geeks" ></p>
         <p id= "Geeks" ></p>
         <script>
             var petName = "Rocky" ; //global variable
             myFunction();
  
             function myFunction() {
                 document.getElementById( "geeks" ).innerHTML =
                   typeof petName + "- " + "My pet name is " + petName;
             }
  
             document.getElementById( "Geeks" ).innerHTML =
                typeof petName + "- " + "My pet name is " + petName;
         </script>
   </center>
  
</body>
  
</html>

输出如下:

JavaScript中的全局变量和局部变量有什么区别?如何使用?

全局变量和局部变量有什么区别?你可以对比上面两个例子,以理解和区分全局变量和局部变量的使用方式。

在哪里使用哪些变量:

尽管使用全局变量似乎比将数据传递给函数并从中返回数据更容易, 但全局变量通常会产生问题。那是因为任何函数都可以修改全局变量, 而且很容易将变量名拼写错误或修改错误的变量, 特别是在大型应用程序中。反过来, 这可能会导致调试问题。

相反, 使用局部变量可减少命名冲突的可能性。例如, 两个不同的函数可以对局部变量使用相同的名称, 而不会引起冲突。当然, 这意味着更少的错误和调试问题。因此, 只有少数例外, 应用程序中的所有代码都应包含在函数中, 因此所有变量都是局部的。

如果你拼错了已经声明的变量名, 则将其视为新的全局变量。考虑到这一点, 请确保在声明新变量时包括关键字, 并始终在代码中引用该变量之前先声明一个变量。

注意:尽可能使用局部变量。始终使用var关键字在其他语句引用该变量之前声明一个新变量。

如何使用变量:

变量或函数的范围决定了哪些代码可以访问它。

在函数内部创建的变量是局部变量和局部变量, 局部变量只能由函数内的代码引用。

在函数外部创建的变量是全局变量, 并且所有函数中的代码都可以访问所有全局变量。

如果你忘记在变量声明中编写var关键字的代码, 则JavaScript引擎会假定该变量是全局变量。这可能会导致调试问题。

通常, 将局部变量从一个函数传递给另一个函数比使用全局变量要好。这将使你的代码更易于理解, 出错的机会更少。

综上,我们介绍了全局变量和局部变量有什么区别,以及如何使用全局变量和局部变量,包括一些例子,希望本文可以帮助到你。


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: