一、Date类型
概念:Dtae类型 使用自UTC(国际协调时间)1970年1月1日午夜(零时)开始经过的毫秒数来保存日期,Date 对象是JS提供的日期和时间的操作接口。
常见方法
-
new Date()
:若括号中无参数,自动获得当前日期和时间 -
Date.prototype.getTime()
:返回实例对象距1970年1月1日00:00:00对应的毫秒数(个人比较喜欢这样写法:var a =new Date();var b=a.getTime
)
Date.parse("2011-10-10")
new Date("2011-10-10").getTime()
// 和Date.parse作用类似,结果:1318204800000
-
Date.prototype.getDate()
:返回实例对象对应每个月的几号(同样喜欢这样的写法:var a =new Date();var b=a.getDate
)
经典题目: 写一个函数getChIntv,获取从当前时间到指定日期的间隔时间
function getChIntv(datestr){
var targetDate = new Date (datestr).getTime()
var curDate = new Date().getTime()
var offset =Math.abs(targetDate-curDate)
var totalSeconds = Math.floor(offset/1000)
var second = totalSeconds%60
var totalMinutes = Math.floor(totalSeconds/60)
var minutes = totalMinutes%60
var totalHours = Math.floor(totalMinutes/60)
var hours = totalHours%24
var totalDays = Math.floor(totalHours/24)
return totalDays + '天' +hours+'小时'+minutes+'分钟'+second+'秒'
}
getChIntv('2017-6-20') //"21天16小时16分钟0秒"
二、数组类型
概念:数组是值的有序集合,JS在同一个数组中可以存放多种类型的元素,较为灵活
常见方法
- push() 方法将一个或多个元素添加到数组的末尾,并返回数组的新长度
- pop()方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度
- shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度
- unshift() 方法将一个或多个元素添加到数组的开头,并返回新数组的长度
- Splice(x,y,z)函数,看下面测试
var a = [1,2,3,4]
a.splice(4,0,5)
console.log(a) // [1,2,3,4,5]实现a.push(5)
a.splice(4,1)
console.log(a) // [1,2,3,4]实现a.pop()
a.splice(0,0,-1,0)
console.log(a) // [-1,0,1,2,3,4]实现a.unshift(-1,0)
a.splice(0,1)
console.log(a) // [0,1,2,3,4]实现a.shift()
- sort()对数组元素排序
var arr =[-4,1,3,18,22,9]
arr.sort(function(a,b){
return a-b})
// 从小到大排列,结果: [-4, 1, 3, 9, 18, 22]
arr.sort(function(a,b){
return b-a})
//从大到小排列,结果: [22, 18, 9, 3, 1, -4]
- map(),遍历数组,回调函数返回值组成一个新数组返回
var arr =[-4,1,3,18,22,9]
var newArr = arr.map(function(value){
return value*value})
console.log(newArr)
// 结果: [16, 1, 9, 324, 484, 81]
- filter(),返回数值的一个子集,回调函数用于逻辑判断返回,返回true则把当前元素加入到返回数组中
var arr =[-4,1,3,18,22,9]
var newArr = arr.filter(function(value){
return value>5})
console.log(newArr)
// 结果: [18, 22, 9]