美文网首页
js的小技巧

js的小技巧

作者: benbensheng | 来源:发表于2019-04-04 10:24 被阅读0次

    1.使用对象为函数参数,这时候可以传入多个参数

    function ben(arg){
        var name=arg.name;
        var age=arg.age;
        var sex=arg.sex;
        console.log(arguments);
    }
    var person={
       "name":"ben",
       "age":10,
       "sex":"men"
    }
    ben(person);
    

    2.使用函数的arguments来确定函数参数的个数

    function ben(name,age){
        if(arguments.length!=2){
            console.log("参数为2个")
        }
        console.log(arguments);
    }
    ben("ben",12,4);
    ben("ben",12);
    

    应用:传入参数个数不同,函数的结果不同

    //传入参数name age打印出name age
    //传入参数name age sex打印出name age sex
    function ben(name,age,sex){
        if(arguments.length==2){
            var age=age;
            var sex="";
        }else if(arguments.length==3){
            var age=age;
            var sex=sex;
        }else{
            console.log("参数错误");
            return;
        }
        console.log(name+age+sex);
    }
    ben("ben",12,"men");
    ben("ben",12);
    

    3. callback的调用陷入循环

    function ben(callback){
        var a=[1,2,3,4,5,6];
        for(var i=0;i<a.length;i++){
            callback(a[i]);
        }
    }
    ben(function(a){
        console.log(a);
        console.log("循环");
    })
    /*
     1
    循环
    2
    循环
    3
    循环
    4
    循环
    5
    循环
    6
    循环
     */
     //决解办法,将数据push进数组,统一返回
     function ben(callback){
        var result =[];
        var a=[1,2,3,4,5,6];
        for(var i=0;i<a.length;i++){
            result.push(a[i]);
        }
        callback(result);
    }
    ben(function(result){
        console.log(result);
        console.log("循环");
    })
    

    4.new Date()的时间格式化

    写入Date的原型
    Date.prototype.format = function(fmt) { 
              var o = { 
                "M+" : this.getMonth()+1,                 //月份 
                "d+" : this.getDate(),                    //日 
                "h+" : this.getHours(),                   //小时 
                "m+" : this.getMinutes(),                 //分 
                "s+" : this.getSeconds(),                 //秒 
                "q+" : Math.floor((this.getMonth()+3)/3), //季度 
                "S"  : this.getMilliseconds()             //毫秒 
              }; 
              if(/(y+)/.test(fmt)) {
                fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
                }
              for(var k in o) {
                if(new RegExp("("+ k +")").test(fmt)){
                 fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
                  }
                }
              return fmt; 
            }
    调用:
    var datetime = new Date();  //实例化
    var formatDate=datetime.format("yyyy-MM-dd hh:mm:ss:S")
    或者直接
    var formatDate = (new Date() ).format("yyyy-MM-dd hh:mm:ss:S")
    

    5. 使用for..in..遍历对象

    var arr={
    "a":a,
    "b":b,
    "c":c
    };
    for (var i in arr){
            console.log(i,":",arr[i]);
    }
    

    相关文章

      网友评论

          本文标题:js的小技巧

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