关于局部变量与形参同名的问题

hztgcl1986 2011-12-02 04:16:38

function test(x)
{
var x = 10;

window.alert(arguments[0]);
window.alert(x);
}
test(); //输出undefined和10
test(1); //输出10和10

谁能给解释下原理?
...全文
245 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hztgcl1986 2011-12-02
  • 打赏
  • 举报
回复
1楼,假设形参会被块内的局部变量屏蔽,那么下面又作何解释?

function f3(a)
{
alert(a); //10
var a = 1;//声明局部变量a且赋值为1
alert(a); //1
alert(arguments[0]); //1,为什么这里也变成了1?
}
f3(10);
Acesidonu 2011-12-02
  • 打赏
  • 举报
回复
形参就是局部变量
-晴天 2011-12-02
  • 打赏
  • 举报
回复
形参会被块内的局部变量屏蔽,不过只是被屏蔽而已,你用 arguments 仍然可以找到它。

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧