老师课堂里讲点有一点不明白,请老师解答

老师课堂里讲点有一点不明白,请老师解答

首先在解析的过程中,先解析全局变量(name ,age),以及全局函数(fn()),在解析局部变量,之后逐行解读代码,在解读代码中不是已经解读到name=“xm”了吗?为啥在打印出来的console.log(name)为undifiend

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

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

2回答
好帮手慕夭夭 2019-12-17 12:01:46

“qq_传说中的寂寞_0”同学你好,问题解答如下:

1. 函数调用之前,name与age是进行了赋值,但是与函数内部的变量无关。

2. 没错的。函数内部的name与age和全局下的变量没有关系,函数内部已经定义了name与age,就不会在全局下面查找了。

3. 另外,如果同学还有其他疑惑,建议自己提问一个新问题。这样便于问题的归纳与你后期的复习哦。

祝学习愉快!

好帮手慕夭夭 2019-12-16 15:52:12

同学你好,是不理解如下例子吗?这是因为变量赋值是不会预解析的,所以在赋值之前输出name为undefined。

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

就相当于如下:

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

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 请问老师,所以fn()是在预解析的时候就已经被执行了吗,才会输出undefined
    2019-12-16 20:50:39
  • 同学你好,理解的不对。函数预解析的时候里面的代码不会执行,函数调用才会执行。这里的意思是,调用函数执行内部代码时,函数内部的变量才会预解析。
    2019-12-17 09:44:42
  • 那函数调用之前,var name="xm",var age=18,应该已经被执行赋值了吧?
    2019-12-17 09:55:26
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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