求大神讲解js奇葩问题

风舞叶扬 2015-10-19 03:00:46

如上
...全文
107 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zpjshiwo77 2015-10-19
  • 打赏
  • 举报
回复
引用 3 楼 jslang 的回复:
你函数内的a,b,c没有用var声明,这样其中的a,b是全局变量。c下面说明。 1,a不用多说。 2,全局变量b的值原本是一个函数的引用地址,执行函数后全局变量b重新赋值为2 3,当 function c() {} 以表达式形式出现时,其中的函数名(c)会作为这个函数内的局部变量,而不是全局变量,这样在函数内 c=3 就是对局部变量c重新赋值。所以并没有全局变量c。
大神果然吊~我花了一个小时才理解了这个问题!想回答的时候,发现你已经答了~~
天际的海浪 2015-10-19
  • 打赏
  • 举报
回复
你函数内的a,b,c没有用var声明,这样其中的a,b是全局变量。c下面说明。 1,a不用多说。 2,全局变量b的值原本是一个函数的引用地址,执行函数后全局变量b重新赋值为2 3,当 function c() {} 以表达式形式出现时,其中的函数名(c)会作为这个函数内的局部变量,而不是全局变量,这样在函数内 c=3 就是对局部变量c重新赋值。所以并没有全局变量c。
xuzuning 2015-10-19
  • 打赏
  • 举报
回复
是够奇葩! IE 就输出 1 2 3 而不是 c 未定义
风舞叶扬 2015-10-19
  • 打赏
  • 举报
回复
自己顶吧。。

87,955

社区成员

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

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