内容简介:初次面试 惨败最优算法:
前端实习面试记录(2019.2.27)
初次面试 惨败
CSS部分
1.利用border的特性实现
JS部分
1.数组乱序
arr.sort(function(){
return Math.random() - 0.5;
})
最优算法: Fisher–Yates shuffle 洗牌算法
2.for in 和 for of
| for in | for of | |
|---|---|---|
| Array | 遍历当前实例以及其原型链上所有 可枚举的 key |
只遍历当前实例中的所有 value ,不涉及原型链 |
| Object | 遍历当前实例以及其原型链上所有 可枚举的 key , 通常需要 Object.hasOwnProperty 过滤。也可以直接用Object.keys(),该函数不会遍历到原型链 |
报错 typeError |
for in 遍历的是键,for of 遍历的是值, for in 一般用于对象的遍历,不会用在数组上。
Js中for in 和for of的区别3.promise
Promise构造函数接收的函数中, 调用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实现。 - 详细解释: 懒加载和预加载
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learning JavaScript
Shelley Powers / Oreilly & Associates Inc / 2006-10-17 / $29.99
As web browsers have become more capable and standards compliant, JavaScript has grown in prominence. JavaScript lets designers add sparkle and life to web pages, while more complex JavaScript has led......一起来看看 《Learning JavaScript》 这本书的介绍吧!