就4-2选择题的第1题,发表一下对全局变量的一些理解,不知是否正确

就4-2选择题的第1题,发表一下对全局变量的一些理解,不知是否正确

function fn(){var x=y=1;}

fn内部其实等价于y=1; var x=y;

所以这里的y是全局变量,但是y一开始是在函数fn内部创建的,如果函数fn没有被执行,那么y就不会被释放出来,所以在全局环境中(例:document.write(y))是得不到y的值的;

只有当fn被执行了,fn里面的y才能被释放出来,接着在全局环境中才能得到y的值。

应该是这样理解吧?

正在回答 回答被采纳积分+1

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

1回答
慕粉1743142242 2017-12-17 15:24:53

function fn() {var x=y=1;}  应该等价于function fn() {var x=y;y=1;}  y应该是一个全局变量吧  应该与函数执行无关 只有x是局部变量吧  浅薄见解  不吝赐教

  • 提问者 woximiemie #1
    你可以试下以下这两种比较就知道了 (1) function fn(){var x=y=1} console.log(y); //y is not defined (2) function fn(){var x=y=1} fn() //执行fn console.log(y); //y=1
    2017-12-18 09:05:19
  • 提问者 woximiemie #2
    function fn() {var x=y=1;} 应该等价于function fn() {var x=y;y=1;} 你这里顺序写错了哦,JS是单线程语言,顺序是从上到下执行,从而导致这里的x无法接收到后面y被赋予的值1。 var x=y=1; 是从右边开始执行的,先是y=1,接着才是var x=y
    2017-12-18 09:23:45
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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