HTML5/CSS
1.每个HTML文件里开头都有个很重要的东西, Doctype, 知道这是干什么的吗?
2.div+css的布局较table布局有什么优点?
3.strong与em的异同?
4.你能描述一下
5.渐进增强和优雅降级之间的不同吗?
6.为什么利用多个域名来存储网站资源会更有效?
7.请描述一下cookies, sessionStorage和localStorage的区别?
8.简述一下src与href的区别。
9.你如何理解HTML结构的语义化?
CSS
1.有哪项方式可以对一个DOM设置它的CSS样式?
2.CSS都有哪些选择器?
3.CSS选择器的优先级是怎么样定义的?
4.CSS中可以通过哪些属性定义, 使得一个DOM元素不显示在浏览器可视范围内?
超
5.链接访问过后hover样式就不出现的问题是什么?如何解决?
6.行内元素和块级元素的具体区别是什么?行内元素的padding和margin可设置吗?
7.css中可以让文字在垂直和水平方向上重叠的两个属性是什么?
8.px和em的区别。
9.描述一个”reset”的CSS文件并如何使用它。
10.知道normalize.css吗?你了解他们的不同之处?
JavaScript面试题
JavaScript面试的题目, 主要考察的内容还是逻辑性为主。 基础的部分, 主要是对内置函数的使用, 比如String, Math, Array对象。 还有一个比较讨面试喜欢的, 就是正则表达式。
作用域链:JS核心部分需要理解的一个重要部分。
闭包
原始对象
var a = 1;
a.a = 2;
console.log(a.a);
这一题需要理解的是点的作用, 在JS解释器中, 首先会判断左侧的变量是什么类型, 如果是普通对象, 会创建一个新的对象作用域, 然后挂载a属性。 console.log部分的a也是又创建了一个封装对象, 但是这个对象下面的a是没有赋值的。
引用类型
var a = {n:1};
var b = a;
a.x = a = {n:2};
alert(a.x);// --> undefined
alert(b.x);// --> [object Object]
这个涉及到了连续赋值的情况, 详情参考javascript 连等赋值问题.在程序运行到之后, 先确定好了 a.x 和 a 的引用, 再从右往左开始赋值的。 还有一点就是可以理解的是 . 运算优先级高于 = 运算符, 所以会先创建 a.x 对象, 然后在执行赋值过程。赋值顺序从右向左。
原型链
JS核心部分的另一个需要理解的重要部分
类型转换
比较时候的转换的原则:
一个是number一个是string时, 会尝试将string转换为number
尝试将boolean转换为number, 0或1
尝试将Object转换成number或string, 取决于另外一个对比量的类型
运算过程的转换原则:
字符串与数字相加,变成字符串
字符串与数字相减, 变成数字