📅  最后修改于: 2023-12-03 15:26:21.718000             🧑  作者: Mango
在 JavaScript 中,函数可以更改函数外部声明的变量。这是因为在 JavaScript 中,变量的作用域是基于函数的,而不是基于块的。因此,函数可以访问和更改函数外声明的变量。以下是一些示例:
let num = 10;
function addNum() {
num += 5;
}
addNum();
console.log(num); // 输出15
在上述示例中,函数 addNum()
访问并更改了函数外部声明的变量 num
的值。因此, num
的值从原来的 10
更改为 15
。
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
对象,如下所示:
let num = 10;
function addNum() {
window.num += 5;
}
addNum();
console.log(num); // 输出15
在上述示例中,虽然在函数内部声明了一个名为 num
的变量,但 window.num
引用的是函数外部声明的变量 num
。因此, num
的值从原来的 10
更改为 15
。
总之,在 JavaScript 中,函数可以更改函数外部声明的变量。这在某些情况下可以非常方便,但也可能导致混乱和不确定性。因此,在编写代码时,请务必小心!