资讯专栏INFORMATION COLUMN

大搜车面试总结

ziwenxie / 1032人阅读

摘要:面试总结工作久了有时候也需要出去看看。前几天大搜车的约了面试,就记录一下关于这次面试的具体内容。给出大致思路,参数回调函数事件。采用去触发事件,在组件注册相应的事件来达到交互的目的。

面试总结
工作久了有时候也需要出去看看。

前几天大搜车的hr约了面试,就记录一下关于这次面试的具体内容。

一、笔试

先填写了个人信息,第一步就是笔试。

哪种盒模型包含padding

header中哪种标记不影响文件的缓存(age, etag, last-modify,cache-control)

设计一个tree组件,使用react、或者vue。可无限嵌套,最大程度的去适应各种需求。给出大致思路,参数、回调函数、事件。

使一个div宽度100px;高100px;居中至少三种方式(不考虑浏览器兼容)

说出你在过去项目中最满意的一部分。

存在字符串a、b。找出a是否包含在b中,如果包含多个返回第一个位置,没有包含则返回-1.如:a="123" b="4512356123" 则返回2。不能使用indexOf、substr等。

设计一个plus函数、实现plus(1)(2)()=3、plus(1)(2)(3)()=6。

题目大致是这样的。细节部分可能有偏差,但是大体的意思是这样的。针对笔试部分后两个函数我写了挺久、只完成了字符串部分,后面手写确实有点难(可能是我太菜了吧)
以下是我回去后给出的答案

哪种盒模型包含padding。

主要分为两种盒模型。标准盒模型、和IE盒模型。

就如图上表示的,IE模型中width包含了content+padding+border。标准模型中width只包含content。开发者可以显示的用box-sizing去设置想要的盒模型。

2.header中哪种标记不影响文件的缓存(age, etag, last-modify,cache-control)。
age:请求头中的age代表的意思是当代理服务器用自己缓存的实体去响应请求时,用该头部表明该实体从产生到现在经过多长时间了。etag:web服务器响应请求时,告诉浏览器当前资源在服务器的唯一标识(生成规则由服务器觉得)。Apache中,ETag的值,默认是对文件的索引节(INode),大小(Size)和最后修改时间(MTime)进行Hash后得到的。Last-Modified:标示这个响应资源的最后修改时间。web服务器在响应请求时,告诉浏览器资源的最后修改时间。Cache-Control与Expires的作用一致,都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据。只不过Cache-Control的选择更多,设置更细致,如果同时设置的话,其优先级高于Expires。

3.设计一个tree组件,使用react、或者vue。可无限嵌套,最大程度的去适应各种需求。给出大致思路,参数、回调函数、事件。
这部分我是根据自己开发的经验去写的,纯粹是个人经验。我使用Vue采用Vue提供的slot去做嵌套,这样提高了组件适应的不同需求的能力。采用emit去触发事件,在tree组件注册相应的事件来达到交互的目的。

回答的不够好,仅提供参考

4.使一个宽度100px高100px的div横向居中至少三种方式(不考虑浏览器兼容)

.box{ position:absolute;left: 50%;trasition: translate(-50%, 0) };

.box{ position:absolute;left: 50%;margin-left: -50px; }

.box{ position: absolute;margin: 0 auto; }

5.说出你在过去项目中最满意的一部分。
是做了一个vue-barrel插件,是UI布局更加美观。详情可以查看我的一篇文章木桶插件。

6.存在字符串a、b。找出a是否包含在b中,如果包含多个返回第一个位置,没有包含则返回-1.如:a="123" b="4512356123" 则返回2。不能使用indexOf、substr等。
这是我自己的代码,可能是面试比较紧张吧,一时没想起来最优的方案,这个复杂度较高,暴力查找.

function findStr(a, b){
    let tmpA = a.split("");
    let tmpB = b.split("");
    let lastIndex = -1;
    let lengthA = tmpA.length;
    let lengthB = tmpB.length;
    
    for( let i = 0; i< lengthB; i++ ){
        let tag = true;
        for( let j =0; j -1 ?  lastIndex : i;
            break;
        }
    }
    
    return lastIndex;
}

7.设计一个plus函数、实现plus(1)(2)()=3、plus(1)(2)(3)()=6。

这部分我当时没有答出来,当时只是模糊的记得柯里化函数,没能手写出来。

function plus() {

    if (arguments.length === 0) {

        let sum = 0;

        plus.list.forEach((item) => {

            sum += item;

        })

        plus.list = [];

        return sum;

    } else {

        plus.list = plus.list ? plus.list:[];

        plus.list = plus.list.concat(Array.prototype.slice.call(arguments, 0));

        return plus;

    }

}
二面详情我会再整理

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/102668.html

相关文章

  • 染陌的 2017 年度总结

    摘要:写在前面看到了死月佳楠等朋友都写了关于的年度总结,总觉得自己也应该写点东西来回首过去的一年,顺便展望一下未来的年。在这份榜单上排在的位置,年也希望更上一层楼。年底跟女朋友结束了四年的恋爱长跑,成功领证。 写在前面 看到了死月、doodlewind、佳楠等朋友都写了关于 2017 的年度总结,总觉得自己也应该写点东西来回首过去的一年,顺便展望一下未来的 2018 年。 由于之前忙于撰写《...

    AdolphLWQ 评论0 收藏0
  • 正在暑假中的《课多周刊》(第1期)

    摘要:正在暑假中的课多周刊第期我们的微信公众号,更多精彩内容皆在微信公众号,欢迎关注。若有帮助,请把课多周刊推荐给你的朋友,你的支持是我们最大的动力。原理微信热更新方案涨知识了,热更新是以后的标配。 正在暑假中的《课多周刊》(第1期) 我们的微信公众号:fed-talk,更多精彩内容皆在微信公众号,欢迎关注。 若有帮助,请把 课多周刊 推荐给你的朋友,你的支持是我们最大的动力。 远上寒山石径...

    liukai90 评论0 收藏0
  • 正在暑假中的《课多周刊》(第1期)

    摘要:正在暑假中的课多周刊第期我们的微信公众号,更多精彩内容皆在微信公众号,欢迎关注。若有帮助,请把课多周刊推荐给你的朋友,你的支持是我们最大的动力。原理微信热更新方案涨知识了,热更新是以后的标配。 正在暑假中的《课多周刊》(第1期) 我们的微信公众号:fed-talk,更多精彩内容皆在微信公众号,欢迎关注。 若有帮助,请把 课多周刊 推荐给你的朋友,你的支持是我们最大的动力。 远上寒山石径...

    yintaolaowanzi 评论0 收藏0
  • CSS学习笔记-元素水平垂直居中

    摘要:前言布局中经常会遇到元素水平居中的需求今天根据以前的学习笔记以及看过的一些技术博客做个元素水平居中的小结。文字的水平垂直居中文字水平居中文字的水平垂直居中在于同高然后。 前言 布局中经常会遇到元素水平居中的需求,今天根据以前的学习笔记?以及看过的一些技术博客做个元素水平居中的小结。 正文 图片的水平垂直居中 //图片地址为http://static.jsbin.com/ima...

    NeverSayNever 评论0 收藏0
  • 前端学习资源汇总

    摘要:建立该仓库的目的主要是整理收集学习资源,统一管理,方便随时查找。目前整合的学习资源只是前端方向的,可能会存在漏缺比较好的资源,需要慢慢的完善它,欢迎在该上补充资源或者提供宝贵的建议。 说明 平时的学习资源都比较的凌乱,看到好的资源都是直接收藏在浏览器的收藏夹中,这样其实并不方便,整理在云笔记上,也不方便查看修改记录,索性就整理在 github 上并开源出来,希望帮助大家能够更快的找到需...

    SnaiLiu 评论0 收藏0

发表评论

0条评论

ziwenxie

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<