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

时间:2017-11-18 10:38:29

标签: javascript arguments global

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

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

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

x();

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

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

x();

你如何解释全局变量的直接参数之间的区别?

如果术语中的内容不准确,请注意。

2 个答案:

答案 0 :(得分:1)

这完全没有意义:

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

如果您想要预定义变量,只需在函数范围内声明它,就像这样:

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

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

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

答案 1 :(得分:-1)

javascript不支持

直接参数。执行以下代码,您将看到。



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

x();