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]) } } }