货拉拉前端面经

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

一面

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

相关推荐

06-15 18:44
黄淮学院 Java
Lynn012:如果是居民楼还是算了吧,看着有点野呢
点赞 评论 收藏
分享
避坑恶心到我了大家好,今天我想跟大家聊聊我在成都千子成智能科技有限公司(以下简称千子成)的求职经历,希望能给大家一些参考。千子成的母公司是“同创主悦”,主要经营各种产品,比如菜刀、POS机、电话卡等等。听起来是不是有点像地推销售公司?没错,就是那种类型的公司。我当时刚毕业,急需一份临时工作,所以在BOSS上看到了千子成的招聘信息。他们承诺无责底薪5000元,还包住宿,这吸引了我。面试的时候,HR也说了同样的话,感觉挺靠谱的。于是,我满怀期待地等待结果。结果出来后,我通过了面试,第二天就收到了试岗通知。试岗的内容就是地推销售,公司划定一个区域,然后你就得见人就问,问店铺、问路人,一直问到他们有意向为止。如果他们有兴趣,你就得摇同事帮忙推动,促进成交。说说一天的工作安排吧。工作时间是从早上8:30到晚上18:30。早上7点有人叫你起床,收拾后去公司,然后唱歌跳舞(销售公司都这样),7:55早课(类似宣誓),8:05同事间联系销售话术,8:15分享销售技巧,8:30经理训话。9:20左右从公司下市场,公交、地铁、自行车自费。到了市场大概10点左右,开始地推工作。中午吃饭时间大约是12:00,公司附近的路边盖饭面馆店自费AA,吃饭时间大约40分钟左右。吃完饭后继续地推工作,没有所谓的固定中午午休时间。下午6点下班后返回公司,不能直接下班,需要与同事交流话术,经理讲话洗脑。正常情况下9点下班。整个上班的一天中,早上到公司就是站着的,到晚上下班前都是站着。每天步数2万步以上。公司员工没有自己的工位,百来号人挤在一个20平方米的空间里听经理洗脑。白天就在市场上奔波,公司的投入成本几乎只有租金和工资,没有中央空调。早上2小时,晚上加班2小时,纯蒸桑拿。没有任何福利,节假日也没有3倍工资之类的。偶尔会有冲的酸梅汤和西瓜什么的。公司的晋升路径也很有意思:新人—组长—领队—主管—副经理—经理。要求是业绩和团队人数,类似传销模式,把人留下来。新人不能加微信、不能吐槽公司、不能有负面情绪、不能谈恋爱、不能说累。在公司没有任何坐的地方,不能依墙而坐。早上吃早饭在公司外面的安全通道,未到上班时间还会让你吃快些不能磨蹭。总之就是想榨干你。复试的时候,带你的师傅会给你营造一个钱多事少离家近的工作氛围,吹嘘工资有多高、还能吹自己毕业于好大学。然后让你早点来公司、无偿加班、抓住你可能不会走的心思进一步压榨你。总之,大家在找工作的时候一定要擦亮眼睛,避免踩坑!———来自网友
qq乃乃好喝到咩噗茶:不要做没有专业门槛的工作
点赞 评论 收藏
分享
评论
15
109
分享

创作者周榜

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