//用一个变量类型列表严格检查一个参数列表
function strict(types,args){
    //保证参数的数量和类型的数量匹配
    if(types.length !== args.length){
        throw '变量类型列表长度:'+types.length+'和参数列表长度:'+args.length+'不相等' ;
    }
   //遍历所有参数,检查它们的类型
    for(var i=0,len=args.length; i<len; i++ ){
        if(args[i].constructor != types[i]){
            throw args[i]+'不是'+types[i].name+'类型';
        }
    }
    
}   
//输出列表的函数 
function ulList(str,num,array){
    //检查参数类型,str必须为字符串,num必须为数字型,array必须为数组
    strict([String,Number,Array],arguments);
    for(var i=0; i<num; i++){
        console.log(str+':'+array[i]);
    }
}
ulList('list',6,['a','b','c','d','e','f']);   
输出:
list:a
list:b
list:c
list:d
list:e
list:f