前端实习面试记录(2019.2.27)初次面试 惨败CSS部分1.利用border的特性实现CSS实现三角形JS部分1.数组乱序arr.sort(function(){ return Math.random() - 0.5;})最优算法:Fisher–Yates shuffle 洗牌算法2.for in 和 for of for infor ofArray遍历当前实例以及其原型链上所有可枚举的key只遍历当前实例中的所有value,不涉及原型链Object遍历当前实例以及其原型链上所有可枚举的key, 通常需要Object.hasOwnProperty过滤。也可以直接用Object.keys(),该函数不会遍历到原型链报错 typeErrorfor in 遍历的是键,for of 遍历的是值, for in 一般用于对象的遍历,不会用在数组上。Js中for in 和for of的区别3.promisePromise构造函数接收的函数中,调用resolve()之后的代码仍然会执行,它在被new的时候是同步执行的,然后再考虑微任务的问题console.log(’test start’)var promise = new Promise(function(resolve, reject){ console.log(‘promise start’); resolve(’testing’); console.log(‘promise end’);})promise.then(function(value){ console.log(value);})console.log(’test end’);4.监听一段时间内用户对我方网页的所有操作到现在我也想不到如何监听document的所有事件,总不能让我把所有事件种类都监听吧。在这里只写一个click事件document.addEventListener(‘click’, function(e){ e = e || window.event; // firefox下window.event为null, IE下event为null stopBubble(e); preventDefault(e); console.log(e.target);}, false);function stopBubble(e) { // 组织冒泡 if(e && e.stopPropagetion){ e.stopPropagation(); // w3c } else { window.event.cancelBubble = true; }}function preventDefault(e){ // 组织浏览器默认行为 if(e && e.preventDefault) { // w3c e.preventDefault() } else { // ie window.event.returnValue = false; } return false; }综合方面1.图片懒加载和预加载懒加载也可称作延迟加载懒加载就是先将页面内的所有图片的真实地址放在一个属性(data-url)里, 并将src先设置为1px的小图片,当触发某些条件(图片进入视野)时,再将图片的src换成真实地址。使页面加载速度快、可以减轻服务器的压力,节约了流量,用户体验好。预加载提前加载图片,当用户需要查看时可直接从本地缓存中渲染,可以使用css或js实现。详细解释:懒加载和预加载参考文章CSS实现三角形Fisher–Yates shuffle 洗牌算法Js中for in 和for of的区别懒加载和预加载谢谢面后想了想,其实这些题也都挺简单的,只怪我基础不牢,也太紧张了,一道题没答上后面脑子就不好使了,希望下次能够沉稳点。在此感谢面试我的面试官,让我认识到了自己的不足,谢谢。