gpt4 book ai didi

javascript - 函数内的变量困惑

转载 作者:行者123 更新时间:2023-11-28 20:25:21 26 4
gpt4 key购买 nike

我想知道是否有人可以帮助我理解为什么函数内的名称与函数外部的名称变量无关。如果您想更改函数内的全局变量 name ,有什么方法可以做到吗?

var name = "Paul";

function test(name){
name = name || 'You';
console.log(name);
}

test('Mario');

console.log(name);

更新:感谢大家的快速回复。那么,如果您逐行运行它,会发生什么情况?

一旦你将 Mario 传递到函数中,它就会用传递给函数的名称替换 name 的所有实例?所以反过来你会得到:

  "Mario" = "Mario" || 'You';

但是如果你什么也没通过:

test();

那name不就是name吗?为什么需要 ||声明?

最佳答案

var name = "Paul";   

function test(nameInput){
name = nameInput || 'You';
console.log(name);
}

关键问题是您有一个同名的局部变量和全局变量。局部变量将优先于全局变量。重命名输入变量以便能够引用两者。

关于javascript - 函数内的变量困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17517269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com