货拉拉前端面经

(工作经验:不到一年,难度应该是校招水平)

一面

1、做个自我介绍吧,为什么这个,为什么那个, 你前端的学习路线是怎么样的?

2、DOM编程

<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <p>4</p>
</ul>

不可以改变html文档,只可以使用DOM+CSS:

(1)将最后一个 li 的文字颜色设置为 red,至少使用3种方法

(2)将 p 去除,至少使用3种方法

(3)实现三栏布局,至少使用3种方法(补充问题:flex=1 是哪些内容的缩写)

(4)点击每一个 li ,输出对应的数字,使用

    1
    2
    3
    4

3、实现一个sum函数,参数数量任意,例子: sum( 1,2,3 ) , 输出 6

// 递归写法(我也不知道我的第一想法为什么是递归...)
function sum(a, ...args) {
    if(args.length === 0) return a;
    let b = args.shift();
    return a + sum(b, ...args);
}

// 迭代写法
function sum(...args) {
    let res = 0;
    for(let i of args) res += i;
    return res;
}

4、假如上一问的sum函数计算时耗时很大,如何使得第一次运行后再次计算的时间大大减少 ?

我使用了个Map 进行缓存。

5、我们不希望这个缓存消耗的空间不断变大,请实现一个LRU缓存置换算法

 class ListNode {
    constructor(key, val) {
        this.key = key;
        this.val = val;
        this.pre = null;
        this.next = null;
    }
}

var LRUCache = function(capacity) {
    this.size = capacity;
    this.map = new Map();
    this.head = new ListNode(null, null);
    this.tail = new ListNode(null, null);
    this.head.next = this.tail;
    this.tail.pre = this.head;
};

LRUCache.prototype.get = function(key) {
    if(!this.map.has(key)) return-1;
    let val = this.map.get(key).val;
    this.put(key,val);
    return val;
};

LRUCache.prototype.put = function(key, value) {
    if(!this.map.has(key)) {
        if(this.map.size === this.size) {
            let node = this.tail.pre;
            let k = node.key;
            this.tail.pre = node.pre;
            node.pre.next = this.tail;
            node.pre = null;
            node.next = null;
            node = null;
            this.map.delete(k);
        }
        let node = new ListNode(key, value);
        node.next = this.head.next;
        node.pre = this.head;
        node.next.pre = node;
        node.pre.next = node;
        this.map.set(key,node);
    }
    else {
        let node = this.map.get(key);
        node.val = value;
        if(node.pre !== this.head) {
            node.pre.next = node.next;
            node.next.pre = node.pre;
            node.pre = this.head;
            node.next = this.head.next;
            node.pre.next = node;
            node.next.pre = node;
        }
    }
};

6、讲下this的指向,并说下这个程序的输出,为什么?(题目忘记了)

7、Vue组件间是如何通信的?

8、Vue2 的数据劫持如何实现的, 有什么缺陷吗? Vue3的是如何实现的?

9、说下什么是跨域问题?如何解决跨域问题?

10、讲下TCP三次握手的过程?稍微详细些

11、在浏览器搜索栏中输入一个url,详细讲讲浏览器渲染环节会发生什么?

12、我改变一个可见元素的宽高,会发生 reflow 还是 repaint?使用translateX呢?

13、你有什么问题想问我的吗?

二面:

  1. 自我介绍

  2. 你做过的项目有什么亮点吗

  3. 如何实现一张图片绕着鼠标旋转的效果

见我回答不出来,将问题拆分成了以下两个子问题:

  1. 如何使一张图片随着鼠标移动

  2. 如何使一张图片以固定的半径绕着一个点旋转

  3. 如何不用new,实现一个构造器的实例化

  4. nginx实现跨域,nginx进行反向代理会有什么问题

  5. 你最近还有在研究什么吗?数据结构与算法,异步编程。那讲下异步编程吧

  6. 有什么想问我的吗

HR面

聊了很多,貌似不刷人

#货拉拉##面经##校招##社招##前端工程师#
全部评论
感觉好难啊,膜拜大佬
1 回复 分享
发布于 2021-11-08 19:57
童鞋,你是21届的吗?
1 回复 分享
发布于 2021-08-28 15:47
过了吗
1 回复 分享
发布于 2021-08-10 23:55
请问hr面完后多久发offer呀
点赞 回复 分享
发布于 2022-06-28 23:17
最低的话需要什么学历?
点赞 回复 分享
发布于 2021-12-30 21:41
去字节了还要跳出来?
点赞 回复 分享
发布于 2021-10-21 17:12
大佬,搞点字节的面经噻
点赞 回复 分享
发布于 2021-10-11 07:46
学历应该不错吧。
点赞 回复 分享
发布于 2021-09-08 23:20
请问这是社招还是校招?
点赞 回复 分享
发布于 2021-08-30 22:47
点赞 回复 分享
发布于 2021-08-10 17:32

相关推荐

12-12 09:58
已编辑
门头沟学院 Java
300人+公司,HR+业务主管面(3人)。前一天晚上打电话约面,想看看自己投的是那一版的简历结果让我删了,无八股全实习,问的实习部分我都怀疑他把两个项目搞混了。。。昨晚说让我准备项目展示也没让展示。。。基本凉凉。1.自我介绍2.介绍实习-------实习拷打-----------3.实习中小程序编程不怎么相关的问题怎么处理的(不是很懂想问的点,直接推到leader上了,说是他做的我不懂ing)4.调用的是公司大模型还是外部API5.简历前两条是怎么实现的(确认了一下是传统编程线程池的问题)6.参与人数7.如何沟通项目8.前后端沟通API定义(没get到点API定义有啥好说的怀疑理解错了,答的前端传json后端映射)9.怎么返回10.字段有哪些11.token存在哪(响应头or数据)12.会py那些库,web框架13.为什么用java做选型怎么考虑的为什么不用py----------------------------14.用过什么AI编程工具15.AI提升了多少效率16.对未来两年AI编程的看法-------技术拷打-----------17.Agent独立开发的吗(怎么可能,leader带的)18.Agent从0-1搭建(介绍了一下自己的项目)19.react(不会没学过我以为是Agent底层呢)20.如何评估效果(提示词工程)21.RAG流程22.问RAG除了大模型还用了什么(我之前答了用了通义的embedding模型,不知道此时问的啥,后面他问我没用embedding吗我还听错了说没有。。。。。。。。)---------------------------------------HR--------------23.实习有什么收获24.问工作地的情况25.为啥不考研26.想没想过考研会带来很大提升27.个人优势(没准备)28.毕业的职业规划29.身边有没有很成功的人30.何时到岗31.原公司加不加班,公司可能加班能不能接受32.个人爱好33.闲暇时间干啥(吃饭打游戏)----------------------------34.反问总结:时隔3个月的再一次面试答得很差,对于实习项目不够熟练深入,很多不是自己产出的部分都不了解,问的很基础的一些技术需求没有get到点,导致回答很差像假实习一样。后续:面试后两天OC,约复试
聊聊我眼中的AI
点赞 评论 收藏
分享
11-28 23:44
已编辑
门头沟学院 前端工程师
回馈社区,楼主18号开题结束后开始投简历,此前两三个月一直在肝小论文,投了10份简历基本都给了面试,目前面了三场,如下:一、莉莉丝前端实习一面&nbsp;凉经第一次面试,很多东西太久没看忘得差不多,我跟面试官小哥都绷不住了,被我菜无语了。1.自我介绍,然后聊了七八分钟,问为什么不做控制相关想学前端2.Monorepo的优势(没写简历上但是提到了,我这个贱嘴)3.zustand在组件外部使用,不能用勾子,应该怎么办(很基础但不会答)3.react什么情况下可以用勾子,随便一个ts文件就行吗(我为什么会觉得所有文件都是组件呢,我说定义在顶层就行)4.useEffect的参数有几个(贱嘴多提了一句清理函数,面试官问你对参数的定义是什么(绷)5.useEffect依赖数组改变是看值还是引用地址(感觉是浅比较但是又忘了浅比较的方法)6.如果我想改成只要值变就调用应该用什么方案(不会)7.看我连对象比较都弄不明白最后直接问了js个有哪些数据类型结束了总结:第一场面试倒是很放松,问题都很简单,回答成这样估计被莉莉丝拉黑了。十分后悔因为很喜欢这家公司,不应该第一份就投的。二、元戎启行&nbsp;凉经疯狂复习一天来面,智驾独角兽,业务是开发3d标注工具相关,和我实验室干的活有些契合。感觉的出面试官想找代码写的溜能直接上手干活的。无js八股,都是写代码问问题或者自己补充代码,&nbsp;没录音只记得这些1.usestate连续多次调用set会怎么样(因为闭包只生效一次),应该怎么解决(函数式更新或者useeffect),调用效果是同步还是异步(批处理,异步)2.State值是数组,写一下代码怎么逐个渲染其中内容3.面试官写了两个a,b两个组件,让写一下条件渲染的代码(&amp;&amp;或三元运算符都可以)4.手写to-do&nbsp;list总结:别老整这些纯实力的,哥们代码只会看不会写三、绿盟经过前两次面试和拓展性复盘,基本把之前的js和react基础拾起来了,自信来面。又没录上音,只记得这些,挺简单的。1.常见http方法2.UseEffect清理函数3.XSS是什么,怎么避免4.流式传输怎么实现的5.Redux和zustand的最大区别是什么6.防抖节流什么意思&nbsp;用的场景7.心跳机制具体逻辑是什么8.Key什么场景下会设置&nbsp;有什么要求9.TailWind相关&nbsp;常用哪些10.Ts相关11.项目相关总结:说是过两天会通知hr面,oc的话应该会拒但是聊的挺开心的。从ssob投递到今天问了我好几次待遇有什么别的要求吗,感觉在北京180-200面试小哥自己都感觉少,我个人是无所谓的。总的总结:三场面试官人都不错,每次结束我都会感谢对方的耐心,心态就是练级呗,下周还有三四场面试希望能拿下一个。目前日常感觉不太缺人,从要简历到约面都是5天左右有点久还是。
查看23道真题和解析
点赞 评论 收藏
分享
评论
15
109
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务