函数中直接参数和全局之间有什么区别?
通过直接参数我的意思是我们直接在函数例程中传递的参数(而不是基于例程中的参数的子例程)。例如:
var x = (0, 1)=>{ // Routine.
// Subroutine.
}; // Routine.
x();
通过全局参数我的意思是直接在函数的例程中定义的变量(编辑,至少在JavaScript中这被正式称为 全局参数 。例如:
var x = (x=0, y=1)=>{ // Routine.
// Subroutine.
} // Routine.
x();
你如何解释全局变量的直接参数之间的区别?
如果术语中的内容不准确,请注意。
答案 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)
直接参数。执行以下代码,您将看到。
let x = (0, 1)=>{ // Routine.
// Subroutine.
}; // Routine.
x();