js中 函数的参数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /* 函数 */
        function fn(){

        }
        // 删除函数
        delete fn;
        /* 全局函数 使用null来进行删除
        对象上的函数 使用delete删除 清空 */
        fn = null;
        console.log(fn);
        var obj1 = {
            fn(){

            }
        }
        obj1.fn = null;
        delete obj1.fn //删除属性
        console.log(obj1)

        document.onclick = function(){
            console.log('aaaa');
            document.onclick = null;
        }
        /* 函数的参数 */
        // 有限参数
        function fn1(a,b,c){
            console.log(a,b,c)
        }
        // 无限参数
        function fn2(){
            console.log(arguments)
        }
        fn2(1,2,34)
        // 获取剩余的参数 ...arg 接收剩余的无限参数
        function fn3(item1,item2,...arg){
            console.log(arg);
            // console.log(item1,item2)
        }
        fn3(1,2,3,4,5,);

        // 参数默认值 如果没有填入该参数 则赋值为默认的值
        /* 必填参数写在最前面 默认值参数写在后面 */
        function fn4(a=100,b=101,c=102){
            console.log(a,b,c);
        }
        fn4()
        /* 需要类型的话 需要使用typescript */

        // 参数是对象 利用结构赋值来进行参数的填写
        /* 还有默认值的填写 不注重参数的顺序 但是参数必须是对象 
         对象的属性名必须和函数中的属性相同 */
        function fn5({a,b,c=1999}){
            console.log(a,b,c)
        }
        fn5({a:100,b:109})
        /* 参数更加灵活 可以使用各种各样的配置 代码的复用性*/

         /* 但是参数的灵活性 就需要对于参数进行各种各样的判断以及处理 */
         /* 选择合适的才是最重要的 */
         function fn6(elem,style){
            for( let item in style ){
                switch(item){
                    case 'width': 
                    case 'height': 
                    case 'left': 
                    case 'top':
                        // style[item] = 
                        break; 
                }
            }
         }

         /* 函数中的参数需要前后顺序 */
         function fn6(){
             console.log('aaaa')
         }
        //  console.log( fn6.constructor === Function );
        //  console.log( fn6 instanceof Object )
        //  console.log( fn6 instanceof Function )

         function fn7(n){
            //  参数列表
            //  console.log(arguments)
            //  解决匿名函数的调用问题 是当前函数
            // console.log( arguments.callee );
            // 调用当前函数的函数 很少用
            // console.log( arguments.callee.caller )
            
            if( !n ) n = 1;
            n++
            console.log(n)
            if( n > 50 ) return;
            arguments.callee(n)//递归自己调用自己 
         }
         fn7()
    </script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值