美文网首页前端面试小结
2018-03-20 百度实习一面

2018-03-20 百度实习一面

作者: 猫熊猫熊 | 来源:发表于2018-03-20 11:36 被阅读0次

1、页面渲染的步骤是什么?

具体分为5步:(1)HTML解析出DOM树(2)CSS解析出style样式表(3)将两者关联生成渲染树(4)相关布局根据渲染树计算每个结点的信息(5)根据计算好的信息绘制整个页面。

webkit浏览器和Gecko在名词上有些微不同,步骤一样。

 浏览器会在下载完成全部CSS之后才对整个页面进行渲染,因此最好的做法是将CSS放在页面最上面,让浏览器尽快下载CSS(这是一个异步过程)。如果将 CSS放在其他地方比如 BODY中,则浏览器有可能还未下载和解析到 CSS就已经开始渲染页面了,这就导致页面由无 CSS状态跳转到 CSS状态(页面回闪),用户体验比较糟糕,所以可以考虑将CSS放在HEAD中。

Javascript则相反,浏览器在加载javascript后立即执行,有可能会阻塞整个页面,造成页面显示缓慢,因此javascript最好放在页面最下面。但如果页面解析时就需要用到javascript,这时放到底部就不合适了。

2、页面重绘和页面重排的区别,分别在什么时候发生?

重绘:屏幕的一部分重画,元素几何尺寸不变

重排:元素几何尺寸改变,要重新验证并计算渲染树

重排成本远高于重绘。

3、css实现三角形

利用border属性,元素不定宽高,某一边的border为0;

4、scss比css的优势

5、opacity和rgba表示透明度的区别

opacity:可继承;rgba不会

6、cdn内容分发网络的原理

内容就近分发,利用网关进行缓存,源服务器将内容备份存储在各个中间服务器上,浏览器发送请求是,通过DNS域名解析,找到离自己最近的中间服务器,获取到备份的信息。因为就近,加快了处理请求的速度。(缓存机制的一种)

7、口述js原型链

让对象a的原型等于对象b的实例,这时a对象实例的proto属性指向a的原型对象-》b的原型对象;若b的原型等于c的实例,则又会指向c,一次向上,直至指向object,形成一条继承链。真正实现原型链的是proto属性而不是原型对象。

8、webpack打包及原理

9、commenJS、AMD、CMD的区别

异步模块加载机制;commenJS主要用于服务端,比如nodejs;AMD依赖前置,预执行;CMD依赖就近,懒执行。

10、npm install --save什么意思,npm install和 npm run dev从哪里开始执行?

11、深复制、浅复制的区别于实现

浅复制:复制的是引用

深复制:会再生成一个新对象,与原对象没有关系。

逐个递归实现深复制(具体代码)

12、DOM节点的操作有哪些

13、缓存的原理

cache-control  Etag  ....

缓存过程

14、基本类型与引用类型的存储区别

基本类型存储在栈中,直接存值;引用类型存储在堆中,是利用引用(指针)进行赋值、调用

15、<style>为什么放在<head>里,<script>为什么放在<body>里

<body>中存放的是dom树的信息,为了使html与css分离,将<style>放在<head>中(内嵌式),否则就是内联式。

<script>是立即下载并执行的,js文件是阻塞的,放在body尾部,是为了使dom节点都加载完毕后再对其进行操作,否则,会引发页面回流重计算以及获取不到DOM节点的问题。

16、同源策略

同域名、同协议、同端口

17、浏览器数据存储的方法

web缓存  本地缓存

18、HTML5中解决跨域新增的方法

postMessage()方法允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本档、多窗口、跨域消息传递。postMessage(data,origin)方法接受两个参数,其中data是要传递的数据,origin是目标窗口的源。通过在另一个窗口上监听window的message事件就可以接收到任何窗口传来的数据。

19、VUE双向数据绑定实现的原理

发布订阅者模式+数据劫持

20、会用grid布局吗?

21、git工作区、暂存区、版本库的区别

git工作区:电脑里能看到的目录,里面存放的是从远程拉取到的某个版本,我们的修改就是基于工作区的基础上,文件的当前状态;

暂存区:当我们做出了修改,利用git-add指令加入修改时,做出的修改是存放到暂存区的;

版本库:git-commit将暂存区中的修改提交到版本库,作为本地电脑的一个新版本,可以撤回commit;

git-push是将本地的新版本发布到远程,则整个团队都可以拉取到。

git的一个重要的特性是支持分支。当我们正在进行一个主分支,临时有另外一个需求要解决,可以把它放到一个分支中,当对这个小分支编程并测试成功后,并入主分支中。这样就不会对其他人的工作产生干扰。

git merge 合并分支

相关文章

  • 2018-03-20 百度实习一面

    1、页面渲染的步骤是什么? 具体分为5步:(1)HTML解析出DOM树(2)CSS解析出style样式表(3)将两...

  • 学院会计硕士赴中石化财务共享服务东营分中心实习

    学院会计硕士赴中石化财务共享服务东营分中心实习 发布时间:2018-03-20 【经管学院:姜鹏、齐建民】为了解会...

  • 2018-03-20

    2018-03-20 夏国君 2018-03-20:20:24 · 字数 325 · 阅读 3 · 日记本 201...

  • 2018-03-22

    2018-03-20 静雪恋 2018-03-20 18:28 · 字数 380 · 阅读 0 · 日记本 打卡日...

  • 百度滴滴测试实习生面经

    百度面试(测试岗): 是在实习僧上投的简历 一面(电话面试,一个小时左右): 首先自我介绍,介绍完就是算法题:判断...

  • 百度搜索-实习

    原文链接: 百度搜索实习生面经 一面面试官是个小年轻,非常Nice。 先是自我介绍,之后就是出题 1、有序双链表去...

  • 百度暑期前端实习一面(提前批)

    1 自我介绍2 你知道页面跳转吗?说说页面跳转的几种实现方式方法1:在 标签内插入 。解释:refresh代...

  • 二叉树遍历算法非递归实现

    寒假的时候百度实习一面被问到了这个,没做出来,补习一下 利用栈结构 前序核心思想为: 每拿到一个 节点 就把它保存...

  • 手撕面经 - 精准打击

    校招2篇,实习1篇,会及时做出调整 字节跳动前端一面面经(感觉凉凉) [字节]一面凉经 腾讯暑期实习前端面经

  • 【北京第二十四天】

    2016.06.29 周三两场面试 百度地图PHP实习生 百度车联网PHP实习生 这次面试感觉挺好的,就我个人而言...

网友评论

    本文标题:2018-03-20 百度实习一面

    本文链接:https://www.haomeiwen.com/subject/yvuvqftx.html