javascript 函数

1、函数的定义数组

一、通常函数ide

//通常函数
//
定义函数f1 function f1(x, y) { console.log("x的值:", x) console.log("y的值:", y) return x+ y; } //调用函数f1 ret = f1(10, 15) console.log("x+y=",ret)

二、匿名函数函数

/*
匿名函数
两个数比较
 */
//声明匿名函数
f2 = function (x, y) {
    if (x > y){
        return x;
    }else {
        return y;
    }
}
//调用匿名函数
ret = f2(5, 10);
console.log("最大值为:", ret);

三、直接执行函数spa

/*
直接执行函数
求和
 */
ret = (function (x, y ) {
    // console.log(x+y)
    return x+y;
})(1, 2);
console.log(ret);

2、函数中的arguments对象

/*
函数中的arguments
arguments能够当作一个数组,全部的实参都在这里
 */
//定义函数
function f2(x, y) {
    console.log(arguments.length);
    for( var i=0 in arguments){
        console.log(arguments[i]);  //属性[变量名称]
    }
}
//调用函数
f2(5,4, 3, 4);

3、局部变量和全局变量生命周期

局部变量:在函数内部定义的变量作用域

全局变量:函数外部声明的变量it

生命周期:局部变量,函数执行结束;全局变量,关闭网页io

4、做用域console

局部->全局

/*
做用域
 */
var name = "tom";
function f1() {
    function inner() {
        var name = "joker"
        console.log(name);
    }
    return inner;
}

ret = f1();
ret();
// 结果:joker

5、词法分析(了解)

一、过程

语义分析->执行代码

二、词法分析

当函数调用的前一瞬间,会先造成一个激活对象:Avtive Object(AO),并会分析如下3个方面:1:函数参数,若是有,则将此参数赋值给AO,且值为undefined。若是没有,则不作任何操做。2:函数局部变量,若是AO上有同名的值,则不作任何操做。若是没有,则将此变量赋值给AO,而且值为undefined。3:函数声明,若是AO上有,则会将AO上的对象覆盖。若是没有,则不作任何操做。函数内部不管是使用参数仍是使用局部变量都到AO上找。

相关文章
相关标签/搜索