js作用域问题

laozixingli 2019-06-27 02:30:26
var a=1; function fn() {alert(a);a=2} fn(a); alert(a)
...全文
159 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39924086 2019-06-28
  • 打赏
  • 举报
回复
错了。。。。。。
qq_40262972 2019-06-28
  • 打赏
  • 举报
回复
var a=1; function fn(a) {alert(a);var a=2} fn(a); alert(a); 与上面做个比较 ①var a=1;我在内存里挖了个坑叫a,赋值为 1 ② function fn(a) {alert(a);var a=2} 这是函数不执行,调用时再分配内存 ③fn(a); 调用时,发现var 挖坑,这个坑叫a(没有进行赋值,这个过程叫声明提升),alert(undefined) 执行a = 2; 函数内部有a的坑,函数内的a = 2; 但是函数执行完,整个函数销毁,所以a = 2的这个a消失了 ④alert(a); alert(1)//因为只剩下全局的a了 ,这个a,一直为1,没有被更改
qq_40262972 2019-06-28
  • 打赏
  • 举报
回复
var a=1; function fn(a) {alert(a);a=2} fn(a); alert(a); 从内存分配上去想。 ①var a=1;我在内存里挖了个坑叫a,赋值为 1 ② function fn(a) {alert(a);a=2} 这是函数不执行,调用时再分配内存 ③fn(a); 调用时,alert(a);在函数内部寻找a,没找到,在全局找到了,alert(1), 执行a = 2; 只找到一个全局的a,a坑里变为2 ④alert(a); alert(2)
天际的海浪 2019-06-27
  • 打赏
  • 举报
回复
引用 7 楼 laozixingli 的回复:
[quote=引用 6 楼 天际的海浪的回复:][quote=引用 4 楼 laozixingli 的回复:] [quote=引用 3 楼 天际的海浪的回复:]就只有一个全局变量a,没有局部变量,函数中的a都全局变量。
var a=1;  function fn(a) {alert(a);a=2}  fn(a); alert(a)[/quote] 这样的话。函数中就有个局部变量a了,函数中的a都是局部变量。 函数内a=2设置的是局部变量a,不会影响函数外的全局变量a。 [/quote] 一般说变量没有var关键字,该变量为全局变量,怎么理解[/quote] 函数的参数就等于是用var声明的局部变量。  function fn(a) 这个a就是局部变量
laozixingli 2019-06-27
  • 打赏
  • 举报
回复
引用 6 楼 天际的海浪的回复:
[quote=引用 4 楼 laozixingli 的回复:] [quote=引用 3 楼 天际的海浪的回复:]就只有一个全局变量a,没有局部变量,函数中的a都全局变量。
var a=1;  function fn(a) {alert(a);a=2}  fn(a); alert(a)[/quote] 这样的话。函数中就有个局部变量a了,函数中的a都是局部变量。 函数内a=2设置的是局部变量a,不会影响函数外的全局变量a。 [/quote] 一般说变量没有var关键字,该变量为全局变量,怎么理解
天际的海浪 2019-06-27
  • 打赏
  • 举报
回复
引用 4 楼 laozixingli 的回复:
[quote=引用 3 楼 天际的海浪的回复:]就只有一个全局变量a,没有局部变量,函数中的a都全局变量。
var a=1;  function fn(a) {alert(a);a=2}  fn(a); alert(a)[/quote] 这样的话。函数中就有个局部变量a了,函数中的a都是局部变量。 函数内a=2设置的是局部变量a,不会影响函数外的全局变量a。
laozixingli 2019-06-27
  • 打赏
  • 举报
回复
那上边的例子,麻烦解释一下
laozixingli 2019-06-27
  • 打赏
  • 举报
回复
引用 3 楼 天际的海浪的回复:
就只有一个全局变量a,没有局部变量,函数中的a都全局变量。
var a=1;  function fn(a) {alert(a);a=2}  fn(a); alert(a)
天际的海浪 2019-06-27
  • 打赏
  • 举报
回复
就只有一个全局变量a,没有局部变量,函数中的a都全局变量。
laozixingli 2019-06-27
  • 打赏
  • 举报
回复
引用 1 楼 cn00439805的回复:
1 2
要的是解释,答案跑一下都知道
cn00439805 2019-06-27
  • 打赏
  • 举报
回复
1 2

87,916

社区成员

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

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