老师 我想问下 obj的b是什么时候运行好的 预编译的时候还是调用的时候

老师 我想问下 obj的b是什么时候运行好的 预编译的时候还是调用的时候

图片描述
可以具体讲讲吗 谢谢老师

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

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

1回答
好帮手慕久久 2023-02-22 18:02:10

同学你好,解答如下:

1、javascript不是预编译语言,它只是一种脚本语言,它的代码不需要编译而是直接交给浏览器解析执行,所以同学的描述是有问题。

2、js代码执行之前会进行预解析,该阶段只负责提升变量声明、函数声明;预解析结束,会开始正式执行代码。执行阶段会做变量赋值等具体操作,所以obj.b的值,是在代码解析obj这个对象的时候计算:

https://img1.sycdn.imooc.com//climg/63f5e7f609bebf5e06400337.jpg

祝学习愉快!

  • 提问者 慕仙0240544 #1

    老师 意思是还没开始执行的时候就已经算出来了是吗 意思是不管怎样都是3?

    2023-02-22 19:33:33
  • 好帮手慕久久 回复 提问者 慕仙0240544 #2

    解答如下:

    1、理解错误。执行的时候才会解析变量的值,进而识别obj这个的变量的属性有哪些,才会计算fun(),如果代码不执行,没法计算。

    2、执行fun时,要看fun中的代码怎么写的,代码写的不一样,值不一定是3。

    2023-02-23 12:45:30
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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