Javascript 函数中的直接参数和全局参数有什么区别?
函数中的直接参数和全局参数有什么区别 直接参数是指我们在函数例程中直接传递的参数(而不是在基于例程中参数的子例程中)。例如:Javascript 函数中的直接参数和全局参数有什么区别?,javascript,arguments,global,Javascript,Arguments,Global,函数中的直接参数和全局参数有什么区别 直接参数是指我们在函数例程中直接传递的参数(而不是在基于例程中参数的子例程中)。例如: var x = (0, 1)=>{ // Routine. // Subroutine. }; // Routine. x(); var x = (x=0, y=1)=>{ // Routine. // Subroutine. } // Routine. x(); 通过全局参数,我指的是直接在函数例程中定义的变量(编辑,至少在JavaS
var x = (0, 1)=>{ // Routine.
// Subroutine.
}; // Routine.
x();
var x = (x=0, y=1)=>{ // Routine.
// Subroutine.
} // Routine.
x();
通过全局参数,我指的是直接在函数例程中定义的变量(编辑,至少在JavaScript中,这正式称为全局参数。例如:
var x = (0, 1)=>{ // Routine.
// Subroutine.
}; // Routine.
x();
var x = (x=0, y=1)=>{ // Routine.
// Subroutine.
} // Routine.
x();
您将如何解释全局变量的直接参数之间的差异
如果术语不准确,很抱歉。javascript不支持直接参数。执行以下代码,您将看到
设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();
请注意,声明的两个变量都没有常量、let或var
自ES2015以来,您可以为参数提供默认值:
let x = (x = 1, y = 2) => {
// do stuff:
}
x();
// or
x(2, 3);
在这种情况下,如果您在函数调用中没有声明参数就调用函数,那么x
将自动为1,y
将自动为2,第一个代码将不起作用。嗨,Jonas,我并不是说它有任何特殊意义。我使用它只是为了显示术语“直接参数”的确切含义。抱歉给你留下其他印象。是的,但你的问题毫无意义。如果js中根本不存在NK,我们怎么能比较两件事呢?第一件是语法错误,第二件不是。你的意思是,在JavaScript或@JonasW编程中根本没有意义。?我发誓我在过去的一些代码中看到过这样的例子,或者我很困惑在理解“不基于参数直接传递参数”这一概念时犯了很大的错误→ “为参数提供默认值”@Quentin thx,我实际上正在努力形成那个句子。注意:我知道全局范围和函数范围的问题…我只是想说我知道(我错了)让x=(x=1,y=2)=>{}
中的1和2被命名为“全局”.它们是如何命名的?根据默认值parameters@Arcticooling也许你需要在问题还不清楚的时候澄清一下。