学习到js的局部变量和全局变量的作用域时候遇到的问题,在js群中跟大家讨论了,还是不太确定,谢谢大家帮忙看一下!谢谢
聊天记录如下:武汉js学习者 14:31:34
大仙们,帮我看段代码,刚刚看到第4章
<script language="javascript">
var x=10;
function f()
{
document.write("x的值为:"+x+"<br>");
var x=20;
document.write("x的值为:"+x);
}
f();
</script>
武汉js学习者 14:33:07
最终输出的结果是:
x的值为:undefined
x的值为:20
thea 14:36:27
全局变量吧武汉js学习者 14:36:52
恩,局部变量和全局变量x=10是全局
thea 14:37:37
是的 后面又定义X=20覆盖了前面武汉js学习者 14:37:50
后面的局部变量
thea 14:38:09
后面也是全局的
武汉js学习者 14:38:12
局部变量的作用域应该在函数体里面吧
只有局部变量和全局变量冲突的时候以局部变量为准
黑子~~ 14:38:40
var 会优先解析
var;
document.write()
x = 20;
武汉js学习者 14:39:00
x的值为:undefined 是什么情况呢
黑子~~ 14:39:07
var x;
武汉js学习者 14:39:30
谢谢黑子和thea
如果只是 var x;没有赋值 出来的应该是 undefined
但是上面都赋值了哦
黑子~~ 14:40:26
你是在函数内部.
下面var x = 20 但是解析器会先 var x;
这个时候..在内部的时候..访问x 是不会访问到全局上面的X的
武汉js学习者 14:41:57
<script language="javascript">
var x=10;
function f()
{/ar x=20;
document.write("x的值为:"+x+"<br>");document.write("x的值为:"+x);
}
f();
</script>
黑子,注释掉了里面的var,输出的都是10了,输出了全局变量
黑子~~ 14:43:44
这就是对的
武汉js学习者 14:44:42
也就是说如果全局和局部冲突,局部起作用,在函数体中优先解析var x;不管他在多少行,但是不赋值对吗?黑子~~ 14:44:58
变量会有限在当前作用域找..如果找不到在到上一层找..直到顶层未
差不多
聊天记录如下:武汉js学习者 14:31:34
大仙们,帮我看段代码,刚刚看到第4章
<script language="javascript">
var x=10;
function f()
{
document.write("x的值为:"+x+"<br>");
var x=20;
document.write("x的值为:"+x);
}
f();
</script>
武汉js学习者 14:33:07
最终输出的结果是:
x的值为:undefined
x的值为:20
thea 14:36:27
全局变量吧武汉js学习者 14:36:52
恩,局部变量和全局变量x=10是全局
thea 14:37:37
是的 后面又定义X=20覆盖了前面武汉js学习者 14:37:50
后面的局部变量
thea 14:38:09
后面也是全局的
武汉js学习者 14:38:12
局部变量的作用域应该在函数体里面吧
只有局部变量和全局变量冲突的时候以局部变量为准
黑子~~ 14:38:40
var 会优先解析
var;
document.write()
x = 20;
武汉js学习者 14:39:00
x的值为:undefined 是什么情况呢
黑子~~ 14:39:07
var x;
武汉js学习者 14:39:30
谢谢黑子和thea
如果只是 var x;没有赋值 出来的应该是 undefined
但是上面都赋值了哦
黑子~~ 14:40:26
你是在函数内部.
下面var x = 20 但是解析器会先 var x;
这个时候..在内部的时候..访问x 是不会访问到全局上面的X的
武汉js学习者 14:41:57
<script language="javascript">
var x=10;
function f()
{/ar x=20;
document.write("x的值为:"+x+"<br>");document.write("x的值为:"+x);
}
f();
</script>
黑子,注释掉了里面的var,输出的都是10了,输出了全局变量
黑子~~ 14:43:44
这就是对的
武汉js学习者 14:44:42
也就是说如果全局和局部冲突,局部起作用,在函数体中优先解析var x;不管他在多少行,但是不赋值对吗?黑子~~ 14:44:58
变量会有限在当前作用域找..如果找不到在到上一层找..直到顶层未
差不多
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货