关于解析过程?
来源:4-16 选择练习
TaraTara
2020-04-24 00:29:09
老师可以详细讲解一下这个题的整个解析过程吗?看答案还是不太明白。
比如为什么第一个document.write(a)里a不是变量a而是function a()?
2回答
同学你好,可以参考下面的思路:
1、在预解析的时候,a变量会提升赋值为undefined,但是下面有a函数,名称重复了,函数提升会覆盖变量,现在a就是一个函数,下面还有一个a函数,后面的会覆盖前面的函数,所以现在a就是第二个函数。
2、预解析完之后开始从上到下按照顺序执行代码:
(1)开始输出a,a是提升之后的第二个函数,所以输出的结果就是第二个函数。
(2)a被赋值为1,现在a就是一个变量,函数声明会跳过,调用的时候才会执行,再次输出a的时候,结果就是1 。
(3)最后调用a,现在a是一个变量,不是函数,所以会报错。
可以再测试理解下。
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
好帮手慕码
2020-04-24
同学你好,预解析的过程可以参考下图:
预解析会定义变量,但是不会赋值。所以最开始定义的a是函数,后预解析完成之后,又重新赋值为1;
同学可以再理解一下,祝学习愉快~
相似问题