①日期
Date.now()
var dt=new Date()
dt.getTime()
dt.getFullYear()
dt.getMonth()
(0-31) dt.getHours()
dt.getMinutes()
dt.getSeconds()
②Math
Math.random()
random 在实际中的应用有清除缓存的作用,是每次访问到的都不是缓存
③数组API
forEach 遍历所有元素
var arr=[1,2,3]
arr.forEach(function(item,index){
console.log(index,item)
})
every 判断所有元素是否都符合条件
var arr=[1,2,3]
var result=arr.every(function(item,index){
if(item<4){
return true;
}
})
console.log(result);
some 判断是否至少一个元素符合条件
var arr=[1,2,3]
var result=arr.some(function(item,index){
if(item<2){
return true;
}
})
console.log(result);
sort 排序
var arr=[1,4,2,3,5]
var arr2=arr.sort(function(a,b){
return a-b
})
console.log(arr2)
map 对元素重新组装,生成新数组
var arr=[1,2,3,4]
var arr2=arr.map(function(item,index){
return '<b>'+item+'</b>'
})
console.log(arr2)
filter 过滤符合条件的元素
var arr=[1,2,3]
var arr2=arr.filter(function(item,index){
if(item>=2){
return true;
}
})
console.log(arr2)
④对象API
var obj={
x:100,
y:200,
z:300
}
var key
for(key in obj){
if(obj.hasOwnProperty(key)){
console.log(key,obj[key])
}
}
例
问题1、获取2019-08-06格式的日期
function formatDate(dt){
if(!dt){
dt=new Date()
}
var year=dt.getFullYear();
var month=dt.getMonth()+1;
var date=dt.getDate();
if(month<10){
month="0"+month;
}
if(date<10){
date="0"+month;
}
return year+"-"+month+"-"+date
}
var dt=new Date()
var formatDate=formatDate(dt)
console.log(formatDate)
问题2、获取随机数,要求是长度一直的字符串格式
var random=Math.random()
var random=random+'0000000000'
var random=random.slice(0,10)
console.log(random)
问题3、写一个能遍历对象和数组的通用forEach函数
function forEach(obj,fn){
var key
if(obj instanceof Array){
obj.forEach(function(item,inex){
fn(index,item)
})
}else{
for(key in obj){
fn(key,obj[key])
}
}
}
var arr=[1,2,3];
forEach(arr,function(index,item){
console.log(index,item)
})
var obj={x:100,y:200};
forEach(obj,function(key,value){
console.log(key,value)
})