滴滴前端一面凉经

四非本科,滴滴一面,滴滴效率很高,面试后没多久就感谢信了
面试官小姐姐很好很有耐心,一路上给了很多提示,但我还是答不出来,真是太逊了😅

自我介绍

学校里有前端课吗,怎么想到去做前端

项目挑一个介绍

怎么学前端的

——————————

1. js的数据类型

boolean,number,string,null,undefined,symbol,bigint

1.1 null是对象吗,typeof null返回是什么,如何正确判断null类型。

(不是;”object”Object.prototype.toString.call(null)

2. 看输出

typeof Boolean(1)

typeof new Boolean(1)

1 == ‘1’

1 == [‘1’]

"boolean””object””true””true”

2.1解释为什么第三个和第四个答案是true

(两边值类型不同的时候,要先进行类型转换,再比较)

3.介绍一下闭包

(闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"

所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。)

3.1看输出

var a = 100;

function create(){

var a = 200;

return function(){

console.log(a + ‘create’);

}

}

var fn2 = create();

fn2();

200create

3.2看输出

for(var i = 0; i < 5; i++){

setTimeout(()=>{

console.log(i);

},1000)

}

5,5,5,5,5

3.2.1解释为什么是这样的输出

(这是因为setTimeout是异步执行,每一次for循环的时候,setTimeout都执行一次,但是里面的函数没有被执行,而是被放到了任务队列里,等待执行。只有主线上的任务执行完,才会执行任务队列里的任务。也就是说它会等到for循环全部运行完毕后,才会执行fun函数,但是当for循环结束后此时i的值已经变成了5,因此虽然定时器跑了5秒,控制台上的内容依然是5。)

3.2.2用闭包的方式改写函数

参考答案:

for (var i = 0; i < 5; i++) {

(function (i) {

setTimeout(() => {

console.log(i);

}, 1000)

})(i);

}

4.编程题

一个字符串只包括’(‘,’)’,’[‘,’]’,’{‘,’}’ 6种字符,判断这些括号是否正确闭合

(面试官小姐姐提示:可以考虑使用栈。遍历完字符串后需要对栈判空)

4.1

if(char === ‘(‘ || char === ‘[‘ || char === ‘{‘ ){

}

这个判断条件有些繁杂,怎么更改

(把这些放入数组,用Array.includes()

5.tcpudp的区别,使用场景

https://segmentfault.com/a/1190000021815671

5.1直播用tcp还是udp

6.输入url到页面渲染的流程

每一步都熟记:https://zhuanlan.zhihu.com/p/133906695

6.1DNS查询是递归查询吗,使用tcp还是udp实现的

DNS的迭代查询和递归查询:

https://zhuanlan.zhihu.com/p/61394192

为什么DNS查询使用udp

https://draveness.me/whys-the-design-dns-udp-tcp/

6.2生成DOM树和CSSOM树之后怎么生成渲染树

https://developers.google.com/web/fundamentals/performance/critical-rendering-path/render-tree-construction?hl=zh-cn

6.3重绘、回流

6.4不考虑缓存和修改协议的情况下,可以通过哪些方式来最快地渲染页面呢,就是我们常说的关键渲染路径

https://developer.mozilla.org/zh-CN/docs/Web/Performance/Critical_rendering_path

7.vue的双向绑定,怎么使用,原理

8.vue3相对于vue2做的性能优化

https://segmentfault.com/a/1190000037492555

9.v-showv-if的区别

10.computedwatch的区别

10.1 computedwatch支持对象的写法吗,就是说可以写一些getset时候触发的

https://segmentfault.com/a/1190000012948175

11.讲一下虚拟DOM,为什么虚拟DOM比原生DOM

11.1 虚拟DOM的变化是怎么去对比的呢

12.var let const的区别

12.1以下代码是否可行

let a = {}; a=1;

const b = {}; b=1;

const c = {}; c.a = 1;

#滴滴##面经##校招##前端工程师#
全部评论
感谢楼主,很贴心
1 回复
分享
发布于 2021-11-24 11:33
同学试试字节不🤣电商缺人中。。。
点赞 回复
分享
发布于 2021-08-03 14:39
淘天集团
校招火热招聘中
官网直投
贴心的楼主 还附赠答案
点赞 回复
分享
发布于 2021-08-03 23:44
一面就问这么多
点赞 回复
分享
发布于 2021-11-29 10:43
2026届????现在这么卷了嘛🐶
点赞 回复
分享
发布于 2021-11-30 10:19

相关推荐

点赞 评论 收藏
转发
8 100 评论
分享
牛客网
牛客企业服务