javascript - 等于函数的变量是否被视为全局变量?
问题描述
在我的一个测验中,我们被要求确定以下代码块中有多少个全局变量:
var one = 1;
var two = 2;
var multiplier = function(number){
}
我回答说有两个:一和二。但是,我的老师把它标记错了,并说有 3 个全局变量。等于函数的变量是否仍被视为全局变量?
解决方案
函数在 Javascript 中是一流的——它们可以分配给任何变量。变量可以保存任何值——数字(如one
and two
)、字符串等、对象或函数。
恰好指向函数的全局变量(如multiplier
)仍然是全局变量。
请注意,顶层的函数声明也会创建全局变量,例如:
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);
当然,全局变量最好在不需要时避免使用,而且很少需要。
推荐阅读
- java - 以函数和自定义对象收集器为参数进行分组
- python - 无法提取“移动”数据。终端显示列表 = ['', '', '', '', '', '', '', '', '']
- selenium - InvalidSelectorException:消息:无效选择器:指定了无效或非法选择器错误单击带有 Selenium 的 div ng-click 元素
- linux - 接收非阻塞套接字的正确方法是什么?
- javascript - 如何通过单击 jquery 中的按钮清除同位素搜索过滤器?
- android - 将 viewmodal livedata 发送到另一个具有 listadapter 的片段
- algorithm - 自下而上的堆分析
- javascript - 列堆叠条形图 HighCharts 中的向下钻取操作
- algorithm - 任何 DFS(深度优先搜索)树的算法 DFS 深度
- python - 如何在python中返回值后更新它