JS面试—其他知识点

目录

一、题目

1、获取 2017-06-10 格式的日期

2、获取随机数,要求是长度一致的字符串格式

3、写一个能遍历对象和数组的通用forEach函数

二、知识点

2.1 日期

2.2 Math

2.3 数组API

2.4 对象API


一、题目

1、获取 2017-06-10 格式的日期

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'+date;
    }
    //强制类型转换
    return year+'-'+month+'-'+date
}
var dt=new Date();
var formatDate=formatDate(dt);
console.log(formatDate);

2、获取随机数,要求是长度一致的字符串格式

var random =Math.random();
var random=random+'0000000000';   //后面加上10个0
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,index){
            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){
    if(obj.hasOwnProperty(key)){
        console.log(key,value)
    }
})

二、知识点

2.1 日期

Date.now(); //获取当前时间的毫秒数   1970年算起
var dt=new Date();
dt.getTime(); //获取毫秒数
dt.getFullYear();   //年
dt.getMonth();   //月  (0-11)
dt.getDate();    //日 (0-31)
dt.getHours();    //小时(0-23)
dt.getMinutes();    //分钟 (0-59)
dt.getSeconds();   //秒 (0-59)

2.2 Math

Math.random()    //0-1

2.3 数组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);    //true
  • some  判断是否有至少一个元素符合条件
var arr=[1,2,3];
var result =arr.some(function (item,index){
  //用来判断所有的数组元素,只要有一个满足条件即可
    if(item<2){
        return true
    }
});
console.log(result);  //true
  • sort   排序
var arr=[1,4,2,3,5];
var arr2=arr.sort(function (a,b){
    //从小到大排序
    return a-b;
    //从大到小排序
    //return b-a
});
console.log(arr2);   //[1, 2, 3, 4, 5]
  • map  对元素重新组装,生成新数组
var arr=[1,2,3,4];
var arr2=arr.map(function (item,index){
    //将元素重新组装,并返回
    return '<b>'+item+'</b>'
})
console.log(arr2);
// ["<b>1</b>", "<b>2</b>", "<b>3</b>", "<b>4</b>"]
  • filter   过滤符合条件的元素
var arr=[1,2,3];
var arr2=arr.filter(function(item,index){
    //通过某个条件过滤数组
    if(item>=2){
        return true
    }
});
console.log(arr2); //[2, 3]

2.4 对象API

  •  for...in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。
var obj={
    x:100,
    y:200,
    z:300
};
var key;  
for(key in obj){//key 指 x,y,z
    //注意这里的hasOwnProperty  判断属性是否为原生的属性
    if(obj.hasOwnProperty(key)){ 
        console.log(key,obj[key])
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值