前端面试必备知识

2018-02-23  本文已影响0人  b94618a7a3da

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, 取决于另外一个对比量的类型

运算过程的转换原则:

字符串与数字相加,变成字符串

字符串与数字相减, 变成数字

上一篇 下一篇

猜你喜欢

热点阅读