百度前端 提前批 一面
自我介绍
说一下实习中使用的主要技术
手撕代码
1 合并有序链表
function listNode(val){
this.val = val;
this.next = null;
}
const mergeTwoList = function(l1, l2){
let head = new listNode(0);
let pre = head;
while(l1 && l2){
if(l1.val > l2.val){
pre.next = l2;
l2 = l2.next;
} else {
pre.next = l1;
l1 = l1.next;
}
pre = pre.next;
}
pre.next = l1 ? l1 :l2;
return head.next;
} 2 实现图片懒加载 var num = document.getElementsByTagName('img').length;
var img = document.getElementsByTagName('img');
var n = 0;
lazyLoadImg();
window.onscroll = lazyLoadImg;
function lazyLoadImg(){
var height = document.documentElement.clientHeight;
var scrollTop = document.body.scrollTop;
for(var i = n;i < num; i++){
if(img[i].offsetTop < height + scrollTop){
img[i].src = img[i].getAttribute('...src');
}
n = i + 1;
}
} 1 简述http和https https的加密过程以及加密原理
2 cookie的默认有效时长
3 sessionStorage同源的不同标签页的数据为什么不能互通
4 webpack是做什么的?它的运行原理
5 Typescript如何实现静态编译
6 V8引擎的编译原理
7 vue的兄弟节点如何实现通信
8 css的继承属性和通用选择器的优先级
9 前端监控页面渲染性能的实现方式
10 进程和线程是什么
11 进程之间如何实现数据通信和数据同步
12 node服务层如何封装接口
深挖底层原理 一直在拓展问 真的难 许愿二面
滴滴公司福利 1778人发布