📜  更改函数 js 之外的变量 - Javascript (1)

📅  最后修改于: 2023-12-03 15:26:21.718000             🧑  作者: Mango

更改函数 js 之外的变量 - Javascript

在 JavaScript 中,函数可以更改函数外部声明的变量。这是因为在 JavaScript 中,变量的作用域是基于函数的,而不是基于块的。因此,函数可以访问和更改函数外声明的变量。以下是一些示例:

示例1
let num = 10;

function addNum() {
  num += 5;
}

addNum();

console.log(num); // 输出15

在上述示例中,函数 addNum() 访问并更改了函数外部声明的变量 num 的值。因此, num 的值从原来的 10 更改为 15

示例2
let arr = [1, 2, 3];

function addToArray(num) {
  arr.push(num);
}

addToArray(4);

console.log(arr); // 输出[1, 2, 3, 4]

在上述示例中,函数 addToArray() 访问和更改了函数外部声明的变量 arr 的值。它向 arr 中添加一个元素,该元素的值是函数参数。因此, arr 的值从原来的 [1, 2, 3] 更改为 [1, 2, 3, 4]

需要注意的是,如果在函数内部声明了与函数外部变量同名的变量,则该变量会覆盖外部变量。如果要在函数中使用外部变量,可以使用 window 对象,如下所示:

示例3
let num = 10;

function addNum() {
  window.num += 5;
}

addNum();

console.log(num); // 输出15

在上述示例中,虽然在函数内部声明了一个名为 num 的变量,但 window.num 引用的是函数外部声明的变量 num。因此, num 的值从原来的 10 更改为 15

总之,在 JavaScript 中,函数可以更改函数外部声明的变量。这在某些情况下可以非常方便,但也可能导致混乱和不确定性。因此,在编写代码时,请务必小心!