JavaScript代码运行前有一个类似编译的过程即词法分析,词法分析主要有三个步骤: 分析参数 再分析变量的声明 分析函数声明 具体步骤如下: 函数在运行的瞬间,生成一个活动对象(Active Object),简称AO 第一步:分析参数: 函数接收形式参数,添加到AO的属性,并且这个时候值为und ...
分类:
Web程序 时间:
2020-05-02 00:22:03
阅读次数:
90
先来看个常见的面试题如下: var a = 10; function test(){ alert(a); //undefined var a = 20; alert(a); //20 } test(); 疑问:为什么呢?test()执行时,虽然a=20没有赋值,但是父级作用域里是有a=10的,不应该 ...
分类:
Web程序 时间:
2020-01-21 10:58:56
阅读次数:
100
JS代码在运行时,先进行词法分析,然后在运行执行代码词法分析1,先生成AcitiveObject对象,简称AO{};2,对参数进行分析,2.1将参数值转化为AO的属性,且值为undefined;2.2如果有形参传递,则把该AO属性的值换成形参的值。3,对用var声明的变量分析Ⅰ,如果AO对象里有该属性,..
分类:
Web程序 时间:
2015-03-05 07:03:38
阅读次数:
452
Javascript中的函数“在定义它们的作用域里运行,而不是在执行它们的作用域里运行”,这是权威指南里抽象而精辟的总结。分三步1 分析参数2分析变量声明3分析函数声明具体步骤0: 函数运行前的1瞬间, 生成 Active Object (活动对象),下称AO 活动对象(activeObject)....
分类:
Web程序 时间:
2014-11-25 23:06:16
阅读次数:
186