之前对JavaScript的底层运行机制不是很了解,错了很多面试图,痛定思痛,决定认真对待 JavaScript,好好了解一下它....JavaScript代码运行前,有一个类似编译的过程,叫做词法分析,就是分析代码或函数的一些变量,声明,对于重复命名的变量的处理....AO的属性中,并且这个时候属性的值是 如:
这个时候函数接收到的是实参, 那么 在这个词法分析的阶段name就是27
第二步 分析变量声明
如var name; var name...= function () {} var name = 27
如果上一步分析参数中AO还没有name属性,则添加AO属性为undefine,即AO.name = undefine
如果AO上面已经有了...name属性,则不作任何修改
第三步 分析函数的声明
如果有function name () {} 把函数赋值给AO.name 则覆盖上一步分析的值
看一段练手的代码
function func(name