JavaScript基础知识——Date,Math
题目:
1、获取2017-06-10格式日期
示例1: var date = new Date(); var add = function(s){ if (s.toString().length === 1) { s = "0" + s; } return s; } var year = date.getFullYear(); var mounth = date.getMonth() + 1; var day = date.getDate(); console.log(add(year) + '-' +add( mounth) + '-' + add(day)); //示例2: function formatDate(dt) { if (!dt) { var 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' + date; } return year + '-'+ month + '-'+ date; } var dt = new Date(); var formatDate = formatDate(dt); console.log(formatDate);
2、获取随机数,要求是长度一致的字符串格式
示例1: var a = Math.random()*10; Math.floor(a); 示例2: var random = Math.random(); random = random + '0000000000'; random = random.slice(0,10); //slice() 方法返回一个从0开始到10结束(不包括结束)选择的数组的一部分,浅拷贝到一个新数组对象。 //原始数组不会被修改 console.log(random);
3、写一个能遍历对象和数组的通用forEach函数
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]) } } } } //arr var arr = [1,2,3,4]; forEach(arr,function (index,item) { console.log(index,item) }) //obj var obj = { x:100,y:200} forEach(obj,function(key,value){ console.log(key,obj[key]); })
// 0 1
// 1 2
// 2 3 // 3 4 // x 100 // y 200
知识点:
1、日期
Date.now() //获取当前时间毫秒数 var dt=new Date() dt.getTime() //获取毫秒数 dt.getFullYear() //年 dt.getMonth() //月(0-11) - 获取后要加1 dt.getDate() //日(0-31) dt.getDay() //星期(0 代表星期日, 1 代表星期一,2 代表星期二, 依次类推) dt.getHours() //小时(0-23) dt.getMinutes() //分钟(0-59) dt.getSeconds() //秒(0-59) //获取的一切时间都是var dt = new Date()时的时间
2、Math
主要作用创建随机数,清除缓存 Math.random();
3、数组API
a、forEach遍历所有元素
//forEach 让数组中的每一项做一件事 var num = [1,2,3,4,5]; num.forEach(function(item,index,array){ console.log(item,index) });
b、every判断所有元素是否都符合条件
var num = [1,2,3,4]; var result = num.every(function(item,index,array){ // 用来判断所有的数组元素,都满足一个条件 if (item < 5) { return true } }); console.log(result) //true
c、some判断是否至少一个元素符合条件
var num = [1,2,3,4]; var result = num.some(function(item,index){ // 用来判断所有的数组元素,只要有一个满足条件就行 if (item < 5) { return true } }); console.log(result) //true
d、sort排序
var arr = [1,5,3,2,4]; var arr2 = arr.sort(function(a,b){ //从小到大 排序a - b return a - b; //从大到小排序 b - a }); console.log(arr2);
e、 map 对元素重新组装,生成新数组
var arr = [1,5,3,2,4]; var arr2 = arr.map(function(item,index){ ////将元素重新组装并返回 return '<b>'+ item +'</b>' }); console.log(arr2);//["<b>1</b>", "<b>5</b>", "<b>3</b>", "<b>2</b>", "<b>4</b>"] //示例2: //map 返回每一项经过计算后的组成的数组 var num = [1,2,3,4,5,4,5,4,3,2,1,0]; var result = num.map(function(item,index,array){ return (item + "s") }); console.log(result);//["1s", "2s", "3s", "4s", "5s", "4s", "5s", "4s", "3s", "2s", "1s", "0s"]
f、filter过滤符合条件的元素
// 示例1: var arr = [1,5,3,2,4]; var arr2 = arr.filter(function(item,index){ if (item > 2) { return true; } }); console.log(arr2); //[5, 3, 4] // 示例2: //filter 返回条件为true的项组成的数组 var num = [1,2,3,4,5,4,5,4,3,2,1,0]; var result = num.filter(function(item,index,array){ return (item>2) }); console.log(result) //[3, 4, 5, 4, 5, 4, 3]
4、for.. in...遍历对象
var obj = { x:100, y:200, z:300 } var key; // key 用来取 obj 的属性名,即 x, y ,z for (key in obj){ //确定属性的名字是对象原生的属性名,不是通过原型继承而来的 if (obj.hasOwnProperty(key)) { console.log(key,obj[key]) //obj[key],通过属性名获取属性值 } }