美文网首页JavaScript基础教程程序员
JS(六)函数、初始作用域(上)

JS(六)函数、初始作用域(上)

作者: StevenTang | 来源:发表于2018-03-04 00:13 被阅读27次

    写在最前面

    函数

    • 定义
      • 函数声明
      • 函数表达式
    • 组成形式
      • 函数名称
      • 参数
        • 形参
        • 实参
      • 返回值
    //函数声明
    //第一种
    function box(参数){
        //内容
    };
    
    //第二种叫命名函数表达式
    var box = function test(参数){
        //内容
    }
    
    box.name-->test
    
    //第二种写法function后面就成了表达式,有没有名字无所谓,所以延伸出了第三种写法
    
    //第三种叫匿名函数表达式-->函数表达式
    var box = function (参数){
        //内容
    }
    box.name -->box
    
    
    //函数执行
    box();
    

    参数

    //形式参数-->形参
    function test(a,b){
        var c= a+b
        console.log(c);//等于3
    }
    //实际参数--实参
    test(1,2);
    
    //不定参数 例子一
    function test(a){
        //a 就等于1
        //2,3不用管
        隐式的方法arguments[1,2,3]实参列表
        找到多余的实际参数
    }
    
    test(1,2,3);
    
    //不定参数 例子二
    function test(a,b,c,d){
        //a 等于1
        //b 等于2
        //c 等于3
        //d 等于undefined
        找到形参的长度sum.length
    }
    
    test(1,2,3);
    
    
    
    //不定参的好处
    var result
    function sum(){
        for(var i = 0; i<arguments.length){
            resuit += arguments[i];
            i++;
        }
        
        console.log(result);
        
    }
    sum(1,2,3,4,5,6,7,8,9)
    
    
    function sum(a,b){
        a = 2;
        console.log(arguments[0]);//打印出2,参数a改变了
    }
    sum(1,2);
    
    function sum(a,b){
        a = 2;
        arguments[0] = 3
        console.log(arguments[0]);//打印出3,参数a改变了,可以相互改变
    }
    sum(1,2);
    //JS的映射规则
    
    
    function sum(a,b){
        b = 2;
        arguments[1];
        console.log(arguments[0]);
    }
    sum(1);
    //JS的映射规则
    
    
    

    打印出undefined,实参列表传进来的时候他就有几个,就算我让b等于2,它也不会往arguments里面加了,因为他根本就没有,这个时候b就当一个变量用了,他跟实参不映射,因为形参比实参多了一位b,只有他们相等的时候他们才会有映射的规则,不相等的时候, 形参多了他不对应实参了,他们之间不映射。


    结束条件加返回值return

    • 结束函数,如果没有写,系统默认自带return
    • 把值返回到函数外部
    function sum(){
        return 123
    }
    
    var box = sum();-->返回123
    

    未完待续......

    相关文章

      网友评论

        本文标题:JS(六)函数、初始作用域(上)

        本文链接:https://www.haomeiwen.com/subject/crzxfftx.html