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