作用域可以定义为执行的区域,表达式和值可以在其中引用。

在JavaScript中有两种作用域,即全局作用域和局部作用域:

全局作用域: 在全局作用域中,变量可以从JavaScript代码的任何部分访问。

局部作用域: 在局部作用域中,变量可以在声明它的函数内部访问。

在函数体内,具有相同名称的局部变量的优先级高于全局变量。如果函数的局部变量的名称与全局变量的名称相同,那么局部变量会隐藏全局变量。

示例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>

输出

1.png

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

示例2

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

在输出中,我们可以看到没有与undefined变量相关的错误生成。代码成功执行而没有生成任何错误。

<!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>
</html>

输出

2.png

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

标签: js, JavaScript, JavaScript语言, JavaScript开发, JavaScript语法, JavaScript脚本, JavaScript教程, JavaScript入门, JavaScript入门教程, JavaScript进阶, JavaScript宝典, JavaScript学习, JavaScript指南, JavaScript大全