javascript - 等于函数的变量是否被视为全局变量?

标签 javascript scope global-variables

在我的一个测验的问题中,我们被要求确定以下代码块中有多少个全局变量:

    var one = 1;
    var two = 2;
    var multiplier = function(number){
    }

我回答说有两个:一个两个。然而,我的老师把它标记错了,并说有3个全局变量。等于函数的变量是否仍被视为全局变量?

最佳答案

函数在 Javascript 中是一流的 - 它们可以分配给任何变量。变量可以保存任何值 - 数字(如 onetwo)、字符串等、对象、或函数

碰巧指向函数(如乘数)的全局变量仍然是全局变量。

请注意,顶层的函数声明也会创建全局变量,例如:

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/

相关文章:

c# - 托管线程会影响 C dll 中的全局变量吗?

变量声明时的Java内存使用情况?

javascript - 我如何合并这个对象数组?

javascript - moment.js 在 Angular 1.5 过滤器上使用时,为除第一个条目之外的每个条目返回无效日期

javascript - angularjs指令+在许多 Controller 中应用范围值

javascript - 事件监听器和 AJAX 异步函数变量作用域

javascript - 在 ReactJS 中将前一个状态保存到一个数组中

javascript - jquery 在 Chrome 中平滑滚动而不是在 Internet Explorer 中

c - 使用 goto 跳转到内部或兄弟范围

Python线程不会更改函数内的全局变量