ES5其他知识Date\Math\Array\Object

11 篇文章 0 订阅
4 篇文章 0 订阅

题目

  • 获取2017-06-10格式的日期
  • 获取随机数,要求是长度一致的字符串格式
  • 写一个能遍历对象和数组的通用forEach函数

知识点

  • 日期
  • Math
  • 数组API
  • 对象API
日期
Date.now()// 获取当前时间毫秒数
var dt = new Date()
dt.getTime()//获取毫秒数 (从1970年开始)
dt.getFullYear()//年
dt.getMonth()//月(0-11)
dt.getDate()//日(0-31)
dt.getHours()//小时 (0-23)
dt.getMinutes()//分钟 (0-59)
dt.getSeconds()//秒 (0-59)
Math
Math.random() //获取随机数 (大于0小于1的小数)
数组API
  • forEach 遍历所有元素
  • every 判断所有元素是否都符合条件
  • some 判断是否有至少一个元素符合条件
  • sort 排序
  • map 对元素重新组装,生成新数组
  • filter 过滤符合条件的元素
//forEach遍历所有元素
var arr = [1,2,3]
arr.forEach(function(item, index){ 
	// 第一个参数是item,第二个是index,顺序不能错
	//遍历数组的所有元素
	console.log(index,item)
})
//0 1
//1 2
//2 3
//every 判断所有元素是否都符合条件
var arr = [1,2,3]
var result = arr.every(function(item,index){
	if(item>1) return true
})
console.log(result)//返回true或false (boolean值)
//some 判断是否有至少一个元素符合条件
var arr = [1,2,3]
var result = arr.some(function(item,index){
	//用来判断所有的数组元素,只要有一个满足条件即可
	if(item>2) return true
})
console.log(result)//返回true或false (boolean值)
//sort 排序
var arr = [1,4,2,6,3]
var arr1 = arr.sort(function(a,b){
	//从小到大排序
	return a - b
	//从大到小排序
	//return b - a
})
console.log(arr1)
//map 对元素重新组装,生成新数组
var arr =[1,2,3]
var arr1 = arr.map(function(item,index){
	//将元素重新组装,并返回
	return item + '0'
})
console.log(arr1)
//filter 过滤符合条件的元素
var arr =[1,2,3,4]
var arr1 = arr.filter(function(item,index){
	//	通过某一个条件过滤数组
	if(item>2) return true
})
console.log(arr1)
对象API
  • for in 循环
var obj = {
	x: 100,
	y: 200,
	z: 300
}
var key
for(key in obj){
	//注意这里的hasOwnProperty,在讲原型链时候讲过了
	if(obj.hasOwnProperTy(key)){
		console.log(key, obj[key])
	}
}

解答

获取2017-06-10格式的日期
//自己的代码
var dt = new Date()
var YY = dt.getFullYear()
var MM = dt.getMonth()+1
var DD = dt.getDate()
console.log(YY+'-'+MM+'-'+DD)
function formatDate(dt){
	if(!dt) dt = new Date()
	var yy = dt.getFullYear()
	var mm = dt.getMonth()+1
	var dd = dt.getDate()
	if(mm<10) mm = '0' + mm//日期格式化
	if(dd<10) dd = '0' + dd//日期格式化
	return yy + '-' + mm + '-' + dd
	
}
var dt = new Date()
console.log(formatDate(dt))
获取随机数,要求是长度一致的字符串格式
//自己的代码
function Random(){
	return function(num){
		var r = Math.random()
		console.log(r)
	}
}
var random = Random()
random()
var random = Math.random()
random = random + '0000000000'
random = random.slice(0,10)//截取前10位
console.log(random)
写一个能遍历对象和数组的通用forEach函数
//自己代码
function forEach(obj){
	var key
	if(obj == null) return (function(){alert('参数未定义')})()
	if(obj instanceof Array){
		obj.forEach(function(item,index){
			console.log(index,item)
		})
	}else{
		for(key in obj){
			console.log(obj[key])
		}
	}
}
function forEach(obj,fn){
	var key
	if(obj instanceof Array){
		obj.forEach(function(item,index){
			fn(index,item)
		})
	}else{
		for(key in obj){
			if(obj.hasOwnProperty(key)){
				fn(key,obj[key])
			}
		}
	}
}
var arr = [1,2,3]
forEach(arr,function(index,item){
	console.log(index,item)
})
var obj = {x:100,y:200,z:300}
forEach(obj,function(key,val){
	console.log(key,val)
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值