为了账号安全,请及时绑定邮箱和手机立即绑定

代码如下,请问为什么最后两个console得到的是4和4

代码如下,请问为什么最后两个console得到的是4和4

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>全局变量的用法</title> <script type="text/javaScript"> window.onload = function(){ function fn1(){ var a = b = 2; console.log(a); console.log(b); } fn1(); console.log(b); function fn2(n){ a = n; console.log(a); } fn2(4); console.log(a); } </script> </head> <body> </body></html>
查看完整描述

1 回答

?
pardon110

TA贡献1038条经验 获得超227个赞

在js中通常没有声明的变量,js解释器自动默认是全局变量。你fn2函数中临时变量a在函数作用域内没有声明,一旦该函数被调用,相当于声明了一个全局变量a,该变量会直到脚本页面执行完毕才释放。而fn1函数内声明变量var a 是一个局部变量,临时的,它的存活期,在fn1调用完毕就结束了。所以后面两个都是4.

查看完整回答
反对 回复 2019-03-12
  • 1 回答
  • 0 关注
  • 611 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信