函数中直接参数和全局参数之间有什么区别?
在函数中,直接参数和全局有什么区别?函数中直接参数和全局参数之间有什么区别?
通过直接参数我的意思是我们直接通过函数例程(而不是基于例程中的参数的子例程)传递的参数。举个例子:比如
var x = (0, 1)=>{ // Routine.
// Subroutine.
}; // Routine.
x();
通过一个全局参数我的意思是直接在函数的程序(编辑定义的变量,至少在JavaScript这种正式的称呼全局参数:
。var x = (x=0, y=1)=>{ // Routine.
// Subroutine.
} // Routine.
x();
你会如何解释直接参数与全局变量的区别?
对不起,如果在术语中有不准确的地方。
这是没有意义的:
如果你想有预定义变量,你只需要声明它在你的功能范围,像这样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);
在这种情况下,如果你调用该函数没有函数内声明的参数调用它会自动将1 x
和2 y
“预定义变量”→“为参数提供默认值” – Quentin
@Quentin thx,我实际上正在努力形成这个句子。 –
只是一个说明:我知道全局范围和函数范围的问题......我只是想说我知道(而且我错了),在let x =(x = 1,y = 2)= 1中的1和2 > {}'被命名为“全局变量”。他们如何命名? – Arcticooling
直接参数在JavaScript中不受支持。执行下面的代码,你会看到。
let x = (0, 1)=>{ // Routine.
// Subroutine.
}; // Routine.
x();
第一个代码不会工作。 –
嗨,乔纳斯,我不是故意有什么特别的意思。我用这只是为了显示“直接参数”一词的含义。对不起其他印象。 – Arcticooling
是的,但你的问题根本没有意义。我们怎么能比较两件事情,一件事情根本不存在于js中? –