文章写于 2016 年 8 月,旧的博客不维护了,一些文章直接迁移到这边来。本文为当时记录的第四篇,也是最后一篇,是百度的三场面试,全是一天完成。javascript
(啪啪啪,以前写完文章写了一半不知怎么就忘记继续发=。= 如今是8/2,文章大概是一个多月前写的)
终于到最后一篇啦。虽然技术面试早就结束了,不过仍是前个星期接到最后一家的Hr的电话,由于已经肯定去哪一家了因此就拒绝了。至此全部的面试都结束啦~结果仍是挺不错的。css
总结一下最后一家的面试,电面,周日早上10点开始,每轮40分钟左右,最后一面出了点意外花了一个多小时。隔一个小时左右下一轮,2点半结束全部技术面。效率过高啦,并且面试官很nice,赞。html
声音比较小并且有点杂,下次应该和面试官说提升一下音量,否则一些问题都听不清楚。前端
印象中仍是不少面试官都会问我这个问题,可是说实话,当时以为难的而后解决了的如今确定不难了,那些难的没解决的说出来又以为很差(没有去解决问题),以前面试的时候提过在移动端图片的上传的处理,其实主要是比较绕,并且有兼容问题,涉及到一些dataUrl,canvas和formdata的转换,说实话也不怎么难,可是由于时间久了,大半年前的东西细节基本忘记了,说出来反而容易被面试官问倒,因此说了一次就不想再说了。 而后就讲了移动端的PC端的区别,就是和以前说的差很少。java
重构方面的问题,优先级排序其实有点不清楚几个嵌套时的优先级,笔试题的时候遇到了,靠猜。基本的优先级:
!important > 内联 > id选择器 > 类选择器 > 标签选择器 > 通配符选择器
developer.mozilla.org/en-US/docs/…
不知道一些文章看到的每一个选择器的权重是哪里看来的=。=
当时没有讲出现的位置和嵌套的影响jquery
这里有太多东西能够讲了,不过当时恰好复习了DNS查找,就着重讲了这部分。而后就是基本的一个网页请求的过程,没有太深刻各个部分好比网络层TCP/IP,服务器怎么拿到请求的资源而后返回,页面渲染的过程。面试官说能讲多少讲多少,可是当时有点紧张就讲的不是不少了。DNS查找就包括递归查找和迭代查找啦。webpack
都是异步加载,可是在加载顺序上有区别。(错了) AMD:Asynchronous Module Definition,中文名是异步模块定义的意思。它是一个在浏览器端模块化开发的规范,RequireJS支持;
CMD:Common Module Definition 通用模块定义。Seajs。
最明显的区别就是在模块定义时对依赖的处理不一样
AMD推崇依赖前置,在定义模块的时候就要声明其依赖的模块
CMD推崇就近依赖,只有在用到某个模块的时候再去require
AMD和CMD最大的区别是对依赖模块的执行时机处理不一样,注意不是加载的时机或者方式不一样 后面看了文章发现说错了,准确的说是执行时机不一样。
www.zhihu.com/question/20…
如今都用webpack和ES6了web
当时说了事件的原理,三个阶段,为何会用live。可是不知道live和delegate的区别。 kb.cnblogs.com/page/94469/
文章说的挺清楚了,live是须要监听的元素进行调用,而后jquery会将事件绑定到document节点上,根据事件类型和选择器进行触发事件
delegate是容器元素进行调用,就和on同样啦,不过参数顺序有区别。面试
 $('a').live('click', function() { alert("That tickles!") });
$('#container').delegate('a', 'click', function() { alert("That tickles!") });
$('#container').on('click', 'a', function () { alert("That tickles!")});
复制代码
live比delegate好,live须要包装一个元素后,调用live时才绑定事件到document上;delegate直接找到容器元素。
虽然如今都是用on来作了。canvas
刚开始是面试官问我一个例子:新浪微博,发布微博和展现微博,怎么作到各个模块的解耦。刚开始没有提示MVC,本身有一点点MVC的思想,可是说的有点乱,估计面试官不满意,而后就让我说MVC,说完噼里啪啦一顿后让我再复述一遍。就比较清晰了(说MVC的时候本身在纸上作了笔记)。面试官太Nice啦!
都是存储。说完区别后问我另外一个场景:使用localstorage缓存js文件,简述方案解决缓存和更新的问题
跨域的解决方案,页面的一些优化方案,webview和html以前怎么相互通讯,HTTP协议,get和post的区别,几个经常使用的状态码
给两个具体场景说方案:
简历写了angular:双向绑定的原理。angular适合用在什么场景,用一个例子说明jq和ng的实现的过程和不一样点,我用了购物车的例子,而后问为何须要双向绑定,有什么好处,有什么缺点,怎么解决。
仍是根据简历:前端数据渲染方案,jq,模板引擎,MVVM,这三种方案的具体实现过程,各自的优点和劣势,分别适合用在什么场景
HTTP协议,盒模型是什么,float和absolute的区别,三种方案说水平垂直居中。
数组去重怎么作,多维数组呢
一个需求:图片能够拖动,当拖动释放的时候根据释放的速度计算图片继续滑动的速度(释放的一瞬间越快,图片继续划得越远),说方案
为何学习前端,学了一年都是怎么学的。读了什么书,上什么论坛,从哪些渠道获取知识。 做为一名学生和做为一名实习生,对一个产品的见解,了解,完成的过程当中要怎么作。 技术问了3个开放问题 pc和mobile的适配 前端性能优化 前端安全。根据我说的简单深刻。为何要用雪碧图,为何要减小请求数 实习时间安排,介绍了部门,有没有什么问题想问他。感受三面基本都差很少