Scope可以定义为执行的区域,可以在其中引用表达式和值的区域。JavaScript中有两个作用域,它们是全局和局部的:

Global Scope  - 在全局范围内,可以从 JavaScript 代码的任何部分访问变量。

Local Scope    - 在本地作用域中,可以在声明该变量的函数中访问该变量。

在函数的主体中,局部变量的优先级高于具有相同名称的全局变量。如果函数的局部变量的名称与全局变量的名称相同,则局部变量将隐藏全局变量。

例1

在此示例中,我们声明了两个变量,一个变量具有全局范围,第二个变量具有局部范围。两个变量都用相同的名称声明。

在输出中,我们可以看到具有局部范围的变量将覆盖全局变量的值。

<!DOCTYPE html> 
<html>
<head> 
</head>
<body>
<script>
var $var12 = 200;   
  
function example() {    
    var $var12 = 300;   
    document.write("Inside example() function = " + $var12);   
}   
document.write("Outside example() function = "  + $var12);  
document.write("<br>");
example(); 
</script>

</body>
</html>

输出

JavaScript scope

当我们在函数内声明变量而不使用 var 关键字时,它将充当全局变量。让我们看一下相同的例子。

例2

在此示例中,我们在函数内部声明了一个变量,而未使用任何变量声明关键字。然后我们在函数外部访问相应的变量。

<!DOCTYPE html> 
<html>
<head> 
</head>
<body>
<script>
function example() {    
    $var12 = 300;   
    document.write("Inside example() function = " + $var12);   
}   
example(); 
document.write("<br>");
document.write("Outside example() function = "  + $var12);  
</script>

</body>

输出

JavaScript scope

在上面的代码中,如果我们在不调用函数的情况下使用变量,则该变量是未定义的,并且不会生成任何输出。在这种情况下,将产生与未定义变量相关的错误。

这一章你学到了什么?来做个笔记,好记忆不如烂笔头! 如果觉得对您有帮助,麻烦帮分享给您的朋友😊😊

祝学习愉快!(如果觉得不正确,选中要修改的内容->右键->编辑)

点我分享笔记