百度|一面 面试官这样说🍕🍕

351 阅读3分钟

前端面试,时长1小时左右

一面

基本情况

1、先自我介绍一下

2、研究生阶段做过的项目有哪些

3、本科专业是xxx,研究生是计算机,是跨考嘛

4、开发中常用的技术栈是什么

vue、vuex、element、vue-router、html、css、js、JQuery

5、react学过吗

css知识

1、css的选择器有哪些,有没有看一下别人总结的知识点

小知识点的优先级有总结,之后应该还要完善一下。优先级

2、position 有哪几个值,说一下他们对应的基点是什么

我的掘金之前总结了,在浮动篇,把他放到了定位这个知识段

3、你实际项目中,用到的这些定位的知识,举例说一下

4、flex布局聊一聊,项目中用的例子

自己在掘金中也有总结,需要时常去看看,因为会忘flex布局

js知识

1、我现在要发请求,c请求是依赖a、b请求的,这个时候你会怎么考虑

我会有2种考虑方法:

利用promise将c请求放到a,b的then方法之后

利用async await 先请求,a,b,在请求c,await会等a,b响应完之后,在执行c的请求

这类题目就属于场景题了,发散思维,我也不知道自己答得怎么样,欢迎大家多提供方案了

2、浏览器的本地存储你用过哪些

localStroage、sessionStorage

3、那为什么会有2个,区别是什么

传送门本地存储对比

4、防抖和节流有没有了解过,项目中用到了哪些

这个后面专门写一个文章整理吧,只有实现的方法,思路总结的还是不到位

5、谈谈你就js闭包的理解,应用场景有哪些

传送门js|执行上下文/作用域链/闭包☂️☂️

6、对线程和进程的理解

这个当时忘光了已经,在写文章总结吧,先欠着

计算机网络

1、get和post请求的区别

2、如果有敏感数据用什么发送

post

3、http和https请求的区别

传送门计算机网络http|http🆚https的区别真的只有这些嘛

模块化

1、webpack用到了哪些知识,谈谈你的使用就行了

css-loader、less-loader、file-loader

plugin

算法题

1、翻转字符串

abcd---> dcba

2、 合并链表(考虑空链表的情况)

我写的答案稍微有点问题


//定义一个链表结构
class ListNode {
    constructor(val, next) {
        this.val = val;
        this.next = next;
    }
}
//合并2个链表的方法
function merge(list1, list2) {
    let head = new ListNode(null);
    let p = head;
    while (list1.next && list2.next) {
        if (list1.val < list2.val) {
            p.next = list1;
            list1 = list1.next;
        } else {
            p.next = list2;
            list2 = list2.next;
        }
        p = p.next;
    }
    // 这里会做判断
    // 1、list1.next是undefined返回list2
    // 2、list2.next是undefined,那说明list1有值,返回list1
    // 3、list1和list2都是undefined,返回list2也是对的,空链表
    p.next = list1.next === undefined ? list2 : list1;
    return head.next;
}
//构造链表1->3->5
let list3 = new ListNode(5, null);
let list2 = new ListNode(3, list3);
let list1 = new ListNode(1, list2);
// 构造链表 2->4->6->8
let list44 = new ListNode(8, null);
let list33 = new ListNode(6, list44);
let list22 = new ListNode(4, list33);
let list11 = new ListNode(2, list22);
//调用链表
let arr = merge(list1, list11);
// 输出合并后的链表
while (arr != null) {
    console.log(arr.val);
    arr = arr.next;
}

反问

1、百度的技术栈是什么

看部门,vue+react 50%

2、怎么提高学习的深度和广度

做项目,只有项目能提高

3、今天面试的结果好久能知道

面试官说他这边没问题。明天应该会发二面,但是说要和部门的同事碰一下,综合评估一下。一天内会有结果的

总体来说,面试难度不大,这个老师很有特别,不会死扣知识点,会让你结合你的项目,讲你用到了哪些东西,这就比较舒服了,这比较务实的嘛。