带参数和不带参数的JavaScript函数

带参数和不带参数的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();

这里是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();
console.log(age); // ------ output = 20

这两个例子的不同之处在于:

  • 在第一个示例中,您更新了
    a
    ,它是在函数执行结束时丢失的局部变量

  • 在第二个示例中,您更新了
    age
    ,这是一个全局变量,可供所有人访问

这些示例的精髓在于说明在JavaScript中,您只能通过值传递变量,而不能像在其他语言中那样通过引用传递变量


要使第一个示例在功能上与第二个示例相同,您需要返回
a
,并将函数结果分配给
age

var年龄=30岁;
功能转换(a){
a=20;
返回a;//或者只返回20;
}
年龄=变化年龄(年龄);

console.log(年龄);//------输出=20
第一种情况下的“age”值未更改,因为您已更改了参数的局部变量“a”的值

在第二种情况下,“age”的值已更改,因为它是函数中可用的全局值

场景中出现了两个概念,请研究这两个概念

  • 全局/局部范围

  • 参考/值类型参数


这是任何教程都应该解释的。可能与