为什么这个JavaScript函数的输出是10
Why is the output of this JavaScript function is 10?
检查这个fiddle或下面的代码,告诉我为什么这个脚本的输出是10
var foo = 1;
function bar() {
if (!foo) {
var foo = 10;
}
alert(foo);
}
bar();
因为函数中的var
,将变量提升到顶部。就像您在函数的顶部声明了它一样,因此foo
在当前作用域中被视为局部变量,全局作用域中的foo
不受影响。您的代码与此相同:
var foo = 1;
function bar() {
var foo;
if (!foo) {
foo = 10;
}
alert(foo);
}
bar();
正如您所看到的,foo
是在函数的顶部声明的,是undefined
,但重要的是,直到if语句内部才获得值。
相关文章:
- 如何在jQuery中将函数的输出分配给变量
- console.log以外的Javascript输出函数
- 函数将输出nan而不是数字,为什么
- 如何使用构造函数's的输出,以便将值插入到对象中
- 它在另一个函数中嵌套后不会输出文本
- 在javascript函数中记录输出或分配的变量
- 如何避免JavaScript中函数输出上的多个变量重新声明
- 通过原型/构造函数从复选框输出值
- 编辑输出字符串函数ol.control.MouseControl
- 为什么不是't此函数用于修改最终输出
- 使用构造函数 - 原型从文本框输出值
- JavaScript 函数没有给出正确的输出
- 如何将以下函数更改为字母数字输出
- 为什么 Javascript sort() 函数没有给出预期的输出
- 你能把jQuery函数的输出放在变量中吗?
- JS函数只返回未定义的数据,但alert输出正确的数据
- 如何在JS/HTML中将函数输出发送到表单元格
- 如何从按钮后面的代码中调用javascript函数,点击并存储其输出,然后继续操作
- 选择更改对鼠标输出函数 JQUERY 无效
- AngularJS .component()中的输出函数('&')不起作用