[关闭]
@greenfavo 2016-10-27T14:40:04.000000Z 字数 3273 阅读 738

百度实习面试总结

面试


一面

  1. 自我介绍,怎么学习前端的,看什么书
  2. http get和post方法区别

    1. //get
    2. 1,从服务器上请求资源
    3. 2,请求可以被缓存
    4. 3,请求可以保留在历史记录中
    5. 4,会显示在浏览器地址栏中,不应在处理敏感数据时使用
    6. 5,有长度限制,主要是URL长度的限制,最大2048kb
    7. //post
    8. 1,向服务器提交要被处理的数据
    9. 2,不能保留在历史记录中
    10. 3,对数据的请求长度没有限制
    11. 4,数据不会显示找URL
  3. http的一些缓存头

    1. //缓存协商阶段
    2. Last-Modified/if-modified-since
    3. ETag/If-None-Match
    4. //本地缓存阶段
    5. Cache-Control/Expires
  4. 浏览器判断缓存的完整过程

    1. 1,本地缓存阶段:先在本地查找该资源,如果有发现该资源,而且该资源还没有过期,就使用这一个资源,完全不会发送http请求到服务器;
    2. 2,协商缓存阶段:如果在本地缓存找到对应的资源,但是不知道该资源是否过期或者已经过期,则发一个http请求到服务器,然后服务器判断这个请求,如果请求的资源在服务器上没有改动过,则返回304,让浏览器使用本地找到的那个资源;
    3. 3,缓存失败阶段:当服务器发现请求的资源已经修改过,或者这是一个新的请求(在本来没有找到资源),服务器则返回该资源的数据,并且返回200 当然这个是指找到资源的情况下,如果服务器上没有这个资源,则返回404
  5. 有哪些缓存头可以返回304状态码

    1. Last-Modified/if-modified-since
    2. ETag/If-None-Match
  6. 响应头有哪些字段

    1. Content-Length:8056
    2. Content-type:image/png
    3. Date:Tue, 03 May 2016 18:06:30 GMT
    4. Expires:Wed, 03 May 2017 18:06:30 GMT
    5. Last-Modified:Thu, 21 Apr 2016 03:17:22 GMT
    6. Cache-Control:public, max-age=31536000
  7. css全称是什么?层叠是怎么体现的

    1. 层叠样式表,层叠体现在后定义的样式会覆盖前面的样式,优先级高的样式会覆盖优先级低的样式
  8. css样式的优先级,选择器的优先级

    1. //优先级递增的选择器列表
    2. 1,通用选择器(*)
    3. 2,元素(类型)选择器(p,h1)
    4. 3,类选择器(.class)
    5. 4,属性选择器(input[type='text'])
    6. 5,伪类(:first-letter ::after)
    7. 6id选择器
    8. 7,内联样式
  9. 设置了!important的样式为什么优先级最高

    1. !important 规则被应用在一个样式声明中时,该样式声明会覆盖CSS中任何其他的声明, 无论它处在声明列表中的哪里
  10. 各个选择器混合使用时的优先级怎么判断

    1. 一个行内样式+1000,一个id+100,一个属性选择器/class类/伪类选择器+10,一个元素名/伪对象选择器+1
    2. 权重越大优先级越高
  11. 文字水平居中,块级元素水平居中的方法
  12. 清除浮动的几种方法

    1. //1
    2. .parent{
    3. overflow:hiddlen;
    4. }
    5. //2
    6. div::before{
    7. content:'';
    8. clear:both;
    9. }
    10. //3
    11. .parent{
    12. float:left
    13. }
  13. 为什么父元素设为overflow:hidden就可以清除浮动
  14. BFC是什么?还有什么能触发BFC

    1. BFC是块级格式上下文
    2. //哪些元素会生成BFC
    3. float(除了none
    4. overflow(除了visible
    5. displaytable-cell/table-caption/inline-block
    6. positionabsolutefixed
  15. postion的有哪几个属性?各自有什么区别?文档流是什么
  16. ajax对象是什么?发起ajax请求的过程
  17. ajax readyState有几个值?分别代表什么意思?

    1. 0;//请求未初始化
    2. 1;//服务器已建立连接
    3. 2;//请求已接收
    4. 3;//请求处理中
    5. 4;//请求已完成且响应已就绪
  18. 说说闭包
  19. 字符串转成数字的几个方法?除了parseInt还有什么

    1. parseInt('1');//1
    2. Number('1');//1
    3. +'1';//1
  20. 本地存储有哪些方法?
    localStorage,sessionStorage,cookie
  21. 介绍项目
  22. nodejs特点
  23. 介绍Express,用express的什么了
  24. js数组的api有哪些?

    1. concat()
    2. join()
    3. pop,push
    4. reverse()
    5. shift,unshift
    6. slice,splice
  25. 用过css预处理吗?为什么用less?less能不能定义函数?(mixin)
  26. 同源策略是什么?怎么解决跨域?jsonp原理?
  27. 参加过ACM比赛吗?
  28. 添加节点的方法?用原生js模拟jquery的after方法

    1. function insertAfter(newElement,referenceElement) {
    2. var parent=referenceElement.parentNode;
    3. parent.insertBefore(newElement, referenceElement.nextSibling);
    4. }
  29. 合并2个数组的方法?除了concat,一行代码实现

    1. var a1=[1,2,3],a2=[4,5,6];
    2. Array.prototype.push.apply(a1,a2);//方法1
    3. a1.push(...a2);//方法2 用es5的扩展参数
  30. 有用过什么前端工程化工具吗?gulp有什么特点
  1. //gulp和grunt的异同点
  2. 1,易于使用:采用代码优于配置策略,Gulp让简单的事情继续简单,复杂的任务变得可管理。
  3. 2,高效:通过利用Node.js强大的流,不需要往磁盘写中间文件,可以更快地完成构建。
  4. 3,高质量:Gulp严格的插件指导方针,确保插件简单并且按你期望的方式工作。
  5. 易.于学习:通过把API降到最少,你能在很短的时间内学会Gulp。构建工作就像你设想的一样:是一系列流管道。
  1. 你有什么要问我的?

二面

  1. 在项目中用到nodejs哪些特性?nodejs相比于php等传统语言有哪些不同
  2. 项目中遇到什么问题了?怎么解决的
  3. 项目中为什么没用mysql
  4. 用到了gulp哪些插件?和grunt的区别
  5. 用到哪些操作DOM的方法?
  6. IE8下getElementsByClassName()无效,封装一个函数解决这个问题
  7. IE和Firefox下事件监听的方式
  8. 冒泡和捕获机制,是先冒泡还是先捕获
  9. 详细说说事件代理
  10. jquery中有哪些事件代理的方法?live,on,delegate的区别
  11. ajax readyState 5个值的意思
  12. 常见http状态码 302,400,401,403
  13. 为什么用prototype原型,有什么特点?
  14. apply/call怎么使用
  15. 数组去重算法

    1. function unique(arr) {
    2. var result=[];
    3. var hash={};
    4. arr.forEach( function(element, index) {
    5. var key=element+typeof element;
    6. if (hash[key]!==true) {
    7. result.push(element);
    8. hash[key]=true;
    9. }
    10. });
    11. return result;
    12. }
  16. 输出100以内质数
  1. function prime () {
  2. var k=0,result=[];
  3. for(var n=2;n<=100;n==2?n++:(n+=2)){
  4. var found=1;
  5. for(var i=2;i<=Math.sqrt(n);i==2?i++ : (i+=2)){
  6. if (n%i===0) {
  7. found=0;//不是质数
  8. break;
  9. }
  10. }
  11. if (found) {
  12. result.push(n);
  13. }
  14. }
  15. return result;
  16. }

三面

  1. 做过哪些项目?介绍项目
  2. 遇到什么困难?怎么解决的
  3. 为什么用mongodb不用mysql?mongodb性能好在哪里?
  4. 为什么写博客
  5. 介绍响应式设计
  6. 在学校参加了什么社团
  7. 和别人合作开发过什么项目吗?怎么进行团队协作的?意见不一致时怎么处理的
  8. 有没有投其他公司的简历?最想去哪个公司
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注