2018年10月北京百度-字节跳动-搜狗-前端开发实习生面经!!

2018年10月北京百度-字节跳动-搜狗-前端开发实习生面经!!

文章目录

  • 2018年10月北京百度-字节跳动-搜狗-前端开发实习生面经!!
    • 字节跳动一面首挂
      • 面试过程:
    • 百度一面杳无音讯
      • 面试问题如下:
    • 搜狗面试
      • 面试问题如下
    • 总结如下:

字节跳动一面首挂

面试过程:

  • 我是内推的,以为没有笔试,上来HR给你两页纸,让你开始答题,时间40分钟,笔试题目如下:

    基础题如下:

    • 如何使用纯CSS实现一个三角形
    • 什么是同源策略,如何解决跨域问题?
    • HTTP协议如何进行缓存?
    • HTTP响应头,请求体含有什么内容?content:keep-alive是什么意思?
    • TCP与UDP的区别,为何TCP要进行三次握手?
    • 知道进程和线程吗?如何进行通信?自己有实现过吗?
    • 0.2+0.1>0.3会返回什么值?如何修改得到自己期望的值?
    • 什么是事件循环?
    • JavaScript的闭包函数?回调函数?
    • jsonP技术?
    • 什么是死锁?为何会出现死锁问题,如何解决?
    • TCP的同步,异步问题?

    三道编程题如下:

    • 第一题:
let obj={
	name="byteDance";
    getName(){
    return this.name;
}
}
let f1=new obj;
fb=f1.getName();
fb();	//输出什么值?请用两种方法修改输出希望的值,并说明理由?
//哎,当时巨紧张,以为是let块作用域的问题,结果最后面试官直接说,这里只是this的指向对象的问题??跪了

​ * 第二题:

new queue()
    .task()=>{
    console.log(1);
}
    .task()=>{
    console.log(2);
}
    .task()=>{
    console.log(3);
}
    .task()=>{
    console.log(4);
}//让你实现一个队列,并在1,3,4秒之后,打印出1,2,3,4
    
//当时以为是异步执行的问题,牛头不对马嘴的直接使用一个setTimeout嵌套实现,自己还刷小聪明用来Promise进行优化实现,结果面试官直接来了一句你学过算法吗???QAQ,紧张的要死,哎.....
    
//这里千万提醒大家不要不加思索的直接写答案,先把题目理解完了之后,知道题目到底考察你什么,不然会让面试官对你的基础产生很大的质疑?????
    
//

​ * 第三题:

请找出[012356881013]中连续的数字,并输出结果如下:["0=>3","5=>6","8","8","10","13"],请用代码进行实现?

//没做出来,应该比较简单,很紧张,当时大脑一片空白,面试官巨严肃,哎,我的第一次面试啊,凉凉...

百度一面杳无音讯

  • 本来面试我应该是一个前端开发的,临时有事,结果让一个搞测试的小姐姐面窝!!还是有点庆幸的,毕竟小姐姐很亲和,由于下午面完字节跳动,晚上又面百度,心情极差,还好运气不错,碰到一个问的不是很深的小姐姐?

面试问题如下:

  • 你的学校在哪个地方?啊…你骑自行车过来的啊?
  • 请说一下JavaScript的原生链?查询?机制?
  • 熟悉Linux的shell命令吗?如何查看进程,端口
  • 说一下指针数组和数组指针的区别?
  • 说一下二叉树的前序,中序,后序排列的算法,结果?
  • eval的用法?有何安全漏洞?
  • heap和stack,堆和栈这两种数据结构的区别,谁会更快一些
  • split及join的区别,各自返回什么数据类型
  • 知道argument类数组对象吗?为什么叫类?为何是一个对象?
  • 如何实现一个进程间的通信?
  • 实现一个算法:从1到2048 ,计算出现1的次数?给出几种优化方案,还有说出你的算法时间复杂度?
  • 数据库知道吗,MySQL和MongoDB有什么区别?你设计过一些简单的数据库吗??
  • 熟悉sql语句吗
  • ES6的新特性有哪些?都有哪些应用?

还有一些,记不起来了,这只是一面,让你回去等通知,一周之内会有消息!!!

搜狗面试

  • 是个亲和力很强的小姐姐,问的也比较基础,说最近项目比较忙,对实习生要求比较高?觉得我没有实际的项目经验,也凉凉了!!!

面试问题如下

  • 说出JavaScript的基本数据结构有哪些?
  • 开发过小程序?可以具体说一下你用过的API和组件吗?你如何实现与后端数据通信的?
  • JavaScript挖坑??一脸懵逼?
  • 怎么实现居中布局?至少三种方法实现?
  • 熟悉git,说一下常用的命令吧?
  • 说一下cookie,localStorage,sessionStorage的区别?
  • 熟悉Vue,说一下它的常用组件?
  • 如何使用JavaScript双向绑定?用哪个属性?我的回答使用definePropty定义一个新属性!!,小姐姐说:可以嘛,还知道它
  • 知道箭头函数吗?
  • 知道PHP? 尬笑:只了解,没有掌握…
  • 浏览器的兼容问题,各大主流浏览器的兼容前缀?这个必须掌握,三家面试公司都问了我这个问题!!

总结如下:

  • 想清楚面试官的问题到底要考察你什么?整理好逻辑在表达,不会就说不会,或者请求面试官给点提示,切记答非所问,否则面试官会对你的印象极其不好?

  • 面试前准备,看你的面试公司侧重什么,有些公司侧重于你的计算机基础知识,尤其是算法+数据结构,而有些公司侧重于你的项目经历,能不能尽快参与项目开发?

  • 答题时,千万别乱写,字迹要工整,排版要好一点,我第一次面试,没注意这些细节,字迹很潦草,排版也不好,尤其是手撕代码的时候,会给面试官的印象很差!!!

  • 最后给点小建议,有些知识学习程度不同,你必须区分开来,不能一揽子全学,你不可能全部掌握;

    • 有些只需要了解,知道有这个东西就行,
    • 有些你需要理解,熟知它的原理,知道优缺点,比如HTTP协议
    • 有些你必须掌握,掌握,你得先理解透这个技术、知识点,完了之后,你必须自己用理解透的的技术实现一个应用,解决一些实际问题,这才是真正的掌握!!!有很多人只停留在理解阶段,就以为自己掌握了,其实不然
//比如假设你理解透了时间复杂度的计算,理解了二叉树的遍历,一些二分查找算法,归并算法,以及对一个算法进行时间和空间的优化

//那么问题来了,如何在500W个单词中统计出所有含有特定前缀的单词????,其实这个算法生活中的应用非常广泛,输入关键字,会出现一系列推荐的词条;使用有道词典查找单词,简单输入一个前缀,会自动出现含有的单词,方便你补全

//既然你只认为已经掌握了所需要的知识,你能将这个问题进行实现吗?,还需要给出一些常见的优化方案,比如内存不足该怎么做,想查找时间尽可能短又当如何?,想节省空间又当如何?

//好好思考一下吧....

//所以学习时好好进行针对性的掌握,多自问自答,多思考问题,多考虑如何将所学知识进行实际应用,解决实际问题?????这也是我第二阶段准备的方向......一起加油吧!!

你可能感兴趣的:(面试总结)