js面试题-----异步和单线程及其他知识点

题目1:同步和异步的区别是什么?分别举一个同步和异步的例子

答案:同步(代码从上到下执行)会阻塞代码执行,而异步不会。 alert是同步的,而setTimeout是异步

题目2:关于setTimeout的笔试题

答案:分别输出1 3 5 2 4

console.log(1)
setTimeout(function(){
     console.log(2)
},0)
console.log(3)
setTimeout(function(){
     console.log(4)
},1000)
console.log(5)

题目3:前端使用异步的场景有哪些

答案:定时任务(setTimeout  setInterval) 网络请求 (ajax  动态<img>加载)事件绑定  回调函数

题目4:获取2017-06-10格式的日期

答案:通过Data() 的api方法getFullYear   getMonth(注意得到的结果要加1)  getDate 方法既可以拼接 得出

 

题目5:写一个能遍历对象和数组的通用forEach函数

答案:

function forEach(obj,fn){
    var key;
    if(obj instanceof Array){
        obj.forEach(function(item,index){
            fn(index,item);
        })
    }else{
        for(var key in obj){
            fn(key,obj[key])
        }
    }
}
posted @ 2017-09-08 13:56  diasa  阅读(1189)  评论(1编辑  收藏  举报