函数中的直接参数和全局参数有什么区别?

What is the difference between a direct argument and a global parameter, in a function?

函数中的直接参数全局有什么区别?

通过直接参数我的意思是我们直接在函数例程中传递的参数(而不是在基于例程中参数的子例程中)。例如:

var x = (0, 1)=>{ // Routine.
    // Subroutine.
}; // Routine.

x();

通过 全局参数 我的意思是直接在函数例程中定义的变量(编辑,至少在 JavaScript 这被正式称为 全局参数。例如:

var x = (x=0, y=1)=>{ // Routine.
    // Subroutine.
} // Routine.

x();

您将如何解释直接参数与全局参数之间的区别?

抱歉,如果术语不准确。

javascript 不支持直接参数。执行下面的代码,你就会看到。

let x = (0, 1)=>{ // Routine.
    // Subroutine.
}; // Routine.

x();

这完全没有意义:

let x = (0, 1)=>{ // Routine.
    // Subroutine.
}; // Routine.
x();

因为如果你想拥有预定义的变量,你只需像这样在你的函数范围内声明它:

let x = () => {
    const one = 1;
    const two = 2;
}

全局变量是您可以从程序中的任何地方访问的变量。在 javascript 中,您有全局对象 window。全局变量通常是不好的做法。它会像这样工作:

one = 1;
two = 2;
let x = () => {
    // e.g. add one and two and return
    return window.one + window.two;
}
x();

请注意,声明的两个变量都没有 const、let 或 var。

从 ES2015 开始,您可以为参数提供默认值:

let x = (x = 1, y = 2) => {
    // do stuff:
}
x();
// or
x(2, 3);

在这种情况下,如果您在调用函数时未在函数调用中声明参数,则 x 将自动为 1,y

将自动为 2