在我的一个测验的问题中,我们被要求确定以下代码块中有多少个全局变量:
var one = 1;
var two = 2;
var multiplier = function(number){
}
我回答说有两个:一个和两个。然而,我的老师把它标记错了,并说有3个全局变量。等于函数的变量是否仍被视为全局变量?
最佳答案
函数在 Javascript 中是一流的 - 它们可以分配给任何变量。变量可以保存任何值 - 数字(如 one
和 two
)、字符串等、对象、或函数。
碰巧指向函数(如乘数
)的全局变量仍然是全局变量。
请注意,顶层的函数声明也会创建全局变量,例如:
function multiplier(number) {
}
// The function declaration created a property on the global object:
console.log(typeof window.multiplier);
// just like:
var one = 1;
console.log(typeof window.one);
当然,global variables are best avoided没有必要时,而且很少有必要。
关于javascript - 等于函数的变量是否被视为全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55739051/