前端面试总结html css,前端面试题总结(持续更新)_html/css_WEB-ITnose

5268f80b9b1e01f982625ef6fac83ca1.png

接下来要参与大大小小的暑期实习笔试和面试。在这篇博客里我将总结一些常见的面试题。其中有一部分是我去年暑假找实习的时候总结的。现在看来,不免有些幼稚。慢慢完善吧!

JavaScript

Q:JS中的闭包

A:闭包从本身在函数式编程中的概念来说,说的是在定义函数时的两部分-函数体和函数的 context,也就是函数定义时的上下文。里面保存着作用域中的变量,函数的定义和赋值。

而我们平时说的闭包,其实是创建对于这个上下文的引用,从而在外部作用域中通过这个引用来访问这个上下文。

所以从概念上来说,你声明了一个函数,就声明了一个闭包。

然后从实际的使用来说,当你通过某种代码对在外部作用域中保存了对当前闭包的引用时,我们说你就“创建”了一个闭包,其实是“创建”了一个 闭包的引用。我们通常用IIFE来达到这一效果,以至于有人认为IIFE就是“闭包”,这其实是不正确的认识。

这就是闭包的实质,至于如何去使用闭包,那就五花八门了。你可以用来保存被外部作用域访问的临时变量,也可以用来封装函数,也可以用来做访问权限控制(类似Java中的私有变量)。

Q:JS模块化

A: 为什么我们需要JS模块化

JS模块化的发展过程(从function,IIFE到Commonjs)

JS模块化的几种方案介绍(Commonjs,AMD,ES6 Module)

CSS

Q:CSS position的不同取值以及差异?

A:取值:static(默认),relative,absolute,fixed。差异,relative:相对于其自身进行定位,不脱离文档流。absolute:相对于父元素链上的第一个已定位元素,如果不存在则相对于body。脱离文档流。fixed,相对于浏览器窗口进行定位,脱离文档流。static:正常的文档流定位。

Q:CSS 盒模型

A: W3C 默认 content-box,ie5-、ie6 Quirks mode border-box

content-box:csswidth = content width

border-box: csswidth = content width + padding +border

Q:CSS选择器

A:元素,类,id,属性,伪类,伪元素。···

Q:CSS hack

A:选择器hack(-webkit-,-moz-),属性hack,IE条件注释

HTML

Q:web语义化

A:html5新标签: Microformat:标准化的css类名,方便搜索引擎对页面内容进行索引。

Q:Doctype

A:通过检查doctype决定使用兼容模式还是标准模式对文档进行渲染。html中为

数据结构与算法

前端性能

Q:页面加载速度优化?

A:从http请求上来说,减少http请求数(合并css,js,sprite图)。减小文件的大小(压缩css,js,图片)。cdn加速等。从浏览器渲染的角度来说,把js放在之前,在dom加载完成后加载js。

网络

Q:HTTP GET POST的不同?

A: GET是把参数加到URL中,在URL中可以看到。POST将表单内容放置在HTTP request body中。

在RESTful的api设计中,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

Q:HTTP状态码

A:200 ok,304 not modified,404 not found,403 forbidden,500 internal server error, 503 Service Unavailable等。

浏览器

Q:描述在浏览器中输入url到网页加载完成的过程

A: 浏览器查看缓存,如果有为过期的资源则直接返回该资源。

若缓存没有所需的资源,浏览器解析url,组装一个http请求。

浏览器获取主机ip地址,查询链从浏览器缓存,本机缓存,路由器缓存,到dns服务器缓存,进入dns查询链

获得主机的ip地址后,与目标ip建立tcp连接,发送http请求

tcp/ip 7层模型

服务器端处理,web服务器,web端处理程序,返回http response

浏览器接收http reponse 并根据状态码不同做出不同的处理

根据资源类型决定处理方式,如果是html文档,则构建DOM树,下载资源,构造CSS om树,执行js脚本。

DOM树:Tokenizing:根据HTML规范将字符流解析为标记Lexing:词法分析将标记转换为对象并定义属性和规则DOM construction:根据HTML标记关系将对象组成DOM树

CSS OM(object model)树:Tokenizing:字符流转换为标记流Node:根据标记创建节点CSSOM:节点创建CSSOM树

根据DOM树和CSS om树构建渲染树 render object从DOM树的根节点遍历所有可见节点,不可见节点包括:1)script,meta这样本身不可见的标签。2)被css隐藏的节点,如display: none对每一个可见节点,找到恰当的CSSOM规则并应用发布可视节点的内容和计算样式

js解析浏览器创建Document对象并解析HTML,将解析到的元素和文本节点添加到文档中,此时document.readystate为loading此时HTML解析器遇到同步script时,将他们添加到文档中,然后执行行内或外部脚本。这些脚本会同步执行,并且在脚本下载和执行时解析器会暂停。浏览器在Document对象上触发DOMContentLoaded事件此时文档完全解析完成,浏览器可能还在等待如图片等内容加载,等这些内容完成载入并且所有异步脚本完成载入和执行,document.readState变为complete,window触发load事件

页面显示(关于这个问题的浏览器渲染方面,看webkit技术内幕比较好,我觉得这本书也算是高阶前端必看的一本)

1428d0e076c3959ab11d28a39bc84fab.png

5268f80b9b1e01f982625ef6fac83ca1.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值