函数中的直接参数和全局参数有什么区别?
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
函数中的直接参数和全局有什么区别?
通过直接参数我的意思是我们直接在函数例程中传递的参数(而不是在基于例程中参数的子例程中)。例如:
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