js函数使用规则

作者: kangyiii | 来源:发表于2017-04-27 14:34 被阅读0次

第一种:传统方式

function 函数名(){···}

通常我们声明函数规则为先声明后调用,但是js中这种声明方式有预加载功能,允许我们先调用函数,再声明函数。

<script type="text/javascript">
        getInfo();
        function getInfo(){
            console.log('hello world');
        }
</script>

注意:
预加载:代码先自动把函数的声明放入内存。从代码书写顺序上看起来是先调用后声明,本质上其实还是先声明后调用。
先调用后加载条件:1.必须是传统的声明方式。2.调用和声明必须存在于一个<script>标签内。

第二种:变量赋值方式

var 函数名 = function(){···}

该方式没有预加载功能,必须先声明后调用。

<script type="text/javascript">
        var f= function (){
            console.log('hello world');
        }
        f();
</script>

函数参数注意事项

  1. 在PHP中,实参个数不允许小于实参,但在js中,实参与形参没有严格对应关系
<script type="text/javascript">
        function f1(name,age,addr){
            console.log('名字:'+name+'年龄:'+age+'地址:'+addr);
        }
        f1('kang','18','china');
        f1('kang','18');
        f1('kang');
</script>
执行结果

arguments

js中的函数形参在不声明的情况下也可以将实参传入函数之内,这时我们就需要arguments关键字。
实参在函数中以arguments数组的形式存在:

<script type="text/javascript">
        function f1(){
            console.log('名字:'+arguments[0]+'年龄:'+arguments[1]+'地址:'+arguments[2]);
        }
        f1('kang','18','china');
</script>

提示:
可以通过arguments.length获取arguments数组的数量,从而根据数量执行不同的代码,这从侧面上实现了JAVA中多态或者重载的效果。

callee

在函数内部要调用本函数的使用callee关键字。类似递归的效果。使用callee函数的优势在于降低代码耦合度。

<script type="text/javascript">
        /*
         * 请n的阶乘
         */
        function f1(n){
            if(n==1){
                return 1;
            }else{
                return n*arguments.callee(n-1);
            }
        }
        console.log(f1(5));
</script>

函数可以嵌套函数

<script type="text/javascript">
        function f1(){
            function f2(){
                console.log("I am f2");
            }
            return f2;
        }
        var ff = f1();
        ff();
</script>

执行结果:I am f2

匿名函数自调用方法

<script type="text/javascript">
        (function(addr){
            console.log(addr);
        })('北京');
</script>

相关文章

网友评论

    本文标题:js函数使用规则

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