阶乘
//阶乘函数
function mul (n){
if(n == 1){
return 1;
}
return n * mul(n - 1);
//没有这个return 无法运算
}
- 找规律
- 找出口
js运行
- 语法分析
- 预编译
- 解释执行
imply global 暗示全局变量
全局对象←→window
未经声明直接赋值的变量归全局对象所有;
function(){
var a = b = 100;//b就为window所有
}
预编译
- 创建AO activation object //执行期上下文
- 找形参和变量声明,将变量和形参名作为AO属性名,值为undefined;
- 将实参值和形参值统一;
- 在函数体里面找函数声明,值赋予函数体;
var num = 123;
function test(){
x = 452;
console.log(c) //undefined
var a = 10 ;
c = 13;
console.log(a) //10
}
var c;
test();
//生成的函数GO对象如下:
GO{
num : 123;
c:13;
x : 452;
test: 函数体
}