js的小技巧

2019-04-04  本文已影响0人  benbensheng

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]);
}
上一篇下一篇

猜你喜欢

热点阅读