前端知识点
HTML+CSS
对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:布局、盒子模型、选择器优先级及使用、HTML5、CSS3、移动端
- 一些自适应或垂直水平居中问题汇总
- Normal Flow
- Containing Block
- Margin Collapse
- BFC
- Baseline
- Writing Mode
- unicode-bidi
JavaScript
补充一下JS的深入理解,参考汤姆大叔的博客: 深入理解JavaScript系列,理解一些原理性质的东西。别停留在使用上,不然面试的时候很容易吃亏。那些你觉得不在意的东西,往往会是你成功的阻碍。
数据类型、面向对象、继承、闭包、插件、作用域、跨域、原型链、模块化、自定义事件、内存泄漏、事件机制、异步装载回调、模板引擎、Nodejs、JSON、ajax等。
JS的知识点,我很喜欢王子墨总结的那些,很完善的感觉:
1、DOM结构 —— 两个节点之间可能存在哪些关系以及如何在节点之间任意移动。
2、DOM操作 —— 如何添加、移除、移动、复制、创建和查找节点等。
3、事件 —— 如何使用事件,以及IE和标准DOM事件模型之间存在的差别。
4、XMLHttpRequest —— 这是什么、怎样完整地执行一次GET请求、怎样检测错误。
5、严格模式与混杂模式 —— 如何触发这两种模式,区分它们有何意义。
6、盒模型 —— 外边距、内边距和边框之间的关系,及IE8以下版本的浏览器中的盒模型
7、块级元素与行内元素 —— 怎么用CSS控制它们、以及如何合理的使用它们
8、浮动元素 —— 怎么使用它们、它们有什么问题以及怎么解决这些问题。
9、HTML与XHTML —— 二者有什么区别,你觉得应该使用哪一个并说出理由。
10、JSON —— 作用、用途、设计结构。
基础知识
- JavaScript的基本数据类型
- 内置对象的常用方法
- 理解事件机制
- 理解原型继承
- 理解作用域问题
- 理解模块化
- 性能优化
- 知道基本的编程语法,比如循环,判断,try/catch 等等
- 理解包括多种函数定义以及赋值的方式,包括匿名函数
- 理解基本的命名空间,全局(window)空间以及对象空间(不包括闭包)
- 理解上下文的角色以及 this 变量的使用
- 理解各种对象以及函数的初始化和声明方式
- 理解 javascript 比较操作符,如<, >, ==, ===,以及对象和字符串比较的原理和对象映射
理解对象属性和函数的数组索引,以及这和真实的数组之间的区别。
中级知识
理解常用库的实现原理,比如选择器部分,事件绑定部分
- 检测浏览器类型与版本
- 了解特性检测
- 理解定时器,以及它的工作原理,包括何时以及如何使用定时器来异步执行方法调用
- 关于回调的深度支持,以及如何通过 call 和 apply 方法来控制上下文和函数参数传递
- 理解 JSON 标记以及 eval 函数
- 理解闭包以及他们如何影响你的代码效率
AJAX 以及对象序列化
高级知识
理解方法的 arguments 变量,包括如何使用它来通过 arguments.length 重载函数,以及通过 arguments.callee 来进行递归调用,需要注意使用这个特性有一定的危险性,因为 ECMAScript 5 的 Strict 模式不支持此功能,但 jQuery 和 Dojo 都用到了它。
- 高级闭包比如 self-memoizing 函数,partially applied 函数,以及最可爱的 (function(){})() 调用。
- 函数以及 HTML prototype,prototype chain,以及如何使用基本的javascript对象和函数(比如 Array)来简化代码。
- 对象类型以及 instanceof 的使用
- 正则表达式和表达式编译
- With 语句以及为什么不要使用它们
最困难的部分,知道如果利用所有这些工具,并产生处干净,整洁,健壮,快速,可维护以及兼容不同浏览器的代码。
和web相关的知识
如何高效的操作 Dom(添加,删除以及更新),还有如何通过使用 document fragments 这样的工具来最小化浏览器的 re-flows。
- 夸浏览器的 DOM 元素属性提取(比如,style,position等等),jQuery 和 Dojo 都可以很好的完成这些工作,尽管如此,理解从 CSS 和 style 标签中提取属性的差异,以及如何计算 position 和 size 还是很重要的。
- 夸浏览器的事件处理,绑定,反绑定,冒泡,以及如何取得期望的回调上下文。在一次,现成的框架也可以很好的处理这些事情,但是你应该对 IE 浏览器和 W3C 标准浏览器之间的不同有所了解。
- 正则表达式选取 DOM 节点
- 浏览器功能检测以及智能降级
其他
HTTP、WEB安全、正则、优化、重构、响应式、团队协作、可维护、SEO、UED、架构、职业生涯
参考资料
- 我所了解的CSS
- 你不知道你不懂 javascript
- 代码之谜
- 汤姆大叔的博客: 深入理解JavaScript系列
- JavaScript核心
- Sit The Test: 提供一些知识点的测试,包含html, css, js
原文: https://leohxj.gitbooks.io/front-end-database/content/interview/the-key-of-frontend-knowledge.html