我已经学习 javascript 语法大约一个星期了。
如何将变量从一个局部作用域移动到另一个局部作用域?例如,我在屏幕外创建了一个 for 循环,它在循环的每一轮都将一组值添加到一个主数组中,主数组称为 x。我没有包括循环,因为它与问题无关。在下面的示例中,变量 y 屏幕外的目的本质上是获取 x 数组中包含的值,以通过网络抓取来检索更多数据。
撇开上下文不谈,我无法访问 if 语句中声明的 y 变量。正如您在下面看到的,我试图将它用作名为 functionName 的函数中的参数。
if (x.length === 1){
let y = x[0]
} else {
let y = x[0][2]
};
functionName(y)
Run Code Online (Sandbox Code Playgroud)
像这样为 if 语句的每个结果复制函数调用是否更好
if (x.length === 1){
let y = x[0]
functionName(y)
} else {
let y = x[0][2]
functionName(y)
};
Run Code Online (Sandbox Code Playgroud)
或者不同的本地范围实际上可以相互通信。
为 if 语句的每个结果调用每个函数肯定感觉不太实际,特别是如果它是一个更大的条件 switch 语句。
提前致谢。
如何将变量从一个局部作用域移动到另一个局部作用域?
你不能。这就是范围的重点。
像这样为 if 语句的每个结果复制函数调用是否更好
不。将变量放在共享范围内。
{
let y;
if (x.length === 1){
y = x[0]
} else {
y = x[0][2]
};
functionName(y)
}
Run Code Online (Sandbox Code Playgroud)