接下来要参与大大小小的暑期实习笔试和面试。在这篇博客里我将总结一些常见的面试题。其中有一部分是我去年暑假找实习的时候总结的。现在看来,不免有些幼稚。慢慢完善吧!
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技术内幕比较好,我觉得这本书也算是高阶前端必看的一本) Statement: The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn