带参数和不带参数的JavaScript函数
这里是Javascript初学者。我试图理解下面两个例子之间的区别,以及为什么它们呈现出不同的结果。任何帮助都将不胜感激!谢谢 示例1带参数和不带参数的JavaScript函数,javascript,Javascript,这里是Javascript初学者。我试图理解下面两个例子之间的区别,以及为什么它们呈现出不同的结果。任何帮助都将不胜感激!谢谢 示例1 var age = 30; function changeAge(a) { a = 20; } changeAge(age); console.log(age); // ------ output = 30 示例2 var age = 30; function changeAge() { age = 20; } changeAge();
var age = 30;
function changeAge(a) {
a = 20;
}
changeAge(age);
console.log(age); // ------ output = 30
示例2
var age = 30;
function changeAge() {
age = 20;
}
changeAge();
console.log(age); // ------ output = 20
这两个例子的不同之处在于:
- 在第一个示例中,您更新了
,它是在函数执行结束时丢失的局部变量a
- 在第二个示例中,您更新了
,这是一个全局变量,可供所有人访问age
要使第一个示例在功能上与第二个示例相同,您需要返回
a
,并将函数结果分配给age
:
var年龄=30岁;
功能转换(a){
a=20;
返回a;//或者只返回20;
}
年龄=变化年龄(年龄);
console.log(年龄);//------输出=20
第一种情况下的“age”值未更改,因为您已更改了参数的局部变量“a”的值
在第二种情况下,“age”的值已更改,因为它是函数中可用的全局值
场景中出现了两个概念,请研究这两个概念
- 全局/局部范围
- 参考/值类型参数