是不是只有在JS语言中局部变量的定义才可以放在else语句中

是不是只有在JS语言中局部变量的定义才可以放在else语句中

http://img1.sycdn.imooc.com//climg/5dab2e77091e07dd05840136.jpg

http://img1.sycdn.imooc.com//climg/5dab2e7709f38e8c06180209.jpg

可以详细解释一下,为什么同为局部变量,第一张图片有效,而第二张图片的第二句局部变量定义确实undefin

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好。首先并不是只有在js语言中才可以在else语句块内定义局部变量呢~Java语言同样可以。并且作用域都局限在这个else语句块内。

这里造成undefined的现象,是btn_num1这个变量在function()内还是function()外的区别造成的。

比如在源代码中增加如下语句:

5daadbbb0938dceb06180239.jpg

页面加载完时已经输出了如下,相当于有了0~20个fuction,每个fuction对应的元素都是当时的i对应的oButton[i],也就是每个匿名函数都可以看做是一个新的:

5daadb5e0960f28a04940745.jpg

每次点击input button这个组件相当于执行已经由for循环分配好的匿名函数,所以,他们自己内部的局部变量不会被共享。btn_num1的赋值发生在点击“+”时的function中,而获取时是在点击“=”的function中。它们并不是同一个变量。但如果将btn_num1定义在function外,那么他们就共享一个变量了。

如果解答了同学的疑问,望采纳~

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师