├── .gitignore ├── HTML-CSS-Answers.md ├── JS 模块化编程.md ├── JS&&PHP常用函数对比.doc ├── JavaScript 权威指南 ├── 1 数据类型 │ ├── JavaScript 数据类型.pptx │ └── 判断两个数组是否相似.docx ├── 2 表达式和运算符 │ ├── Boolean.js │ └── JavaScript 表达式和运算符.pptx ├── 3 语句、严格模式 │ └── JavaScript 语句与严格模式.pptx ├── 4 对象 │ ├── 1 对象的概念与继承 │ │ ├── prototype 属性与原型.jpg │ │ ├── prototype 属性与原型.txt │ │ ├── 基于原型的继承.jpg │ │ └── 对象的概念.jpg │ ├── 2 再谈原型链 │ │ ├── 再谈原型链.jpg │ │ └── 原型链.txt │ ├── 3 修改 prototype │ │ ├── 修改 prototype.txt │ │ ├── 修改内置构造器的 prototype.jpg │ │ └── 动态改变 prototype.jpg │ ├── 4 实现继承的方法 │ │ └── 实现继承的方式.txt │ ├── 5 重载 模块化 链式调用 │ │ ├── defineProperty(ES5).jpg │ │ ├── 抽象类.jpg │ │ ├── 模块化.jpg │ │ ├── 模拟重载.jpg │ │ ├── 调用子类方法.jpg │ │ └── 链式调用.jpg │ ├── 6 探测器 │ │ ├── Detector.png │ │ └── detector.js │ └── JavaScript 对象.pptx ├── 5 数组 │ └── JavaScript 数组.pptx ├── 6 函数(闭包)与作用域 │ └── JavaScript 函数.pdf └── 7 正则表达式 │ ├── RegExp对象方法.jpg │ └── 字符串与正则相关的方法.jpg ├── JavaScript-Answers(1).md ├── JavaScript-Answers(2).md ├── JavaScript-Answers(3).md ├── JavaScript常用代码.doc ├── URL 常用编码.txt ├── algorithm ├── cartesianProduct.js ├── clock.js ├── fibonacci.js ├── findindex.html ├── flat.js ├── fotmatBigNum.html ├── permutation.js ├── sumMapArr.js ├── toThousands.html └── twoSum.js ├── code ├── Class │ ├── createNew.js │ └── extends.js ├── bind │ ├── bind.html │ └── mvvm.html ├── bubble │ └── bubble-capture.html ├── closure │ ├── closuer.js │ ├── closure1.js │ ├── closure2.js │ └── closure3.js ├── eventUtil │ ├── customEvent.js │ ├── eventUtil.js │ └── testEvent.html ├── function │ ├── Thunk.js │ ├── arguments.js │ ├── compose.js │ ├── debounce.js │ ├── deepClone.js │ ├── eqFunction.js │ ├── factorial.js │ ├── fibonacci.js │ ├── function.length.js │ ├── hookFunction.js │ ├── isType.js │ ├── iterator.js │ ├── monopoly.js │ ├── multicast.js │ ├── newFunction.js │ ├── once.js │ ├── performance.js │ ├── pipeFunction.js │ ├── promise.js │ ├── proxy.js │ ├── pureFunction.js │ ├── reduceFunction.js │ ├── serialFunction.js │ ├── setTimeout.js │ ├── tailcall.js │ ├── templet.js │ ├── throttle.js │ └── trampoline.js ├── promise │ └── traffic lights │ │ ├── index.html │ │ ├── traffic-array.js │ │ ├── traffic-poll.js │ │ ├── traffic-promise.js │ │ ├── traffic-state-machine.js │ │ └── traffic.css ├── proxy │ └── es6-proxy.js ├── redux │ ├── Redux API.md │ ├── redex-combineReducers │ │ ├── reducer1.js │ │ └── reducers2 │ │ │ ├── counterReducer.js │ │ │ ├── index.js │ │ │ └── todosReducer.js │ ├── redux-compose.html │ ├── redux-middleware.html │ ├── redux-stream.html │ └── redux.js ├── reflect │ └── MVVM-Reflect.js └── scope │ ├── scope.js │ ├── scope1.js │ ├── scope2.js │ ├── scope3.js │ ├── scope4.js │ ├── scope5.js │ ├── scope6.js │ └── scope7.js ├── jQuery之DOM操作.doc ├── property和attribute的区别.docx ├── 代码规范 ├── JavaScript 代码整洁之道.md ├── React 编码规范.md └── 关于程序中命名的总结.md └── 原生JS的DOM操作.doc /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear on external disk 35 | .Spotlight-V100 36 | .Trashes 37 | 38 | # Directories potentially created on remote AFP share 39 | .AppleDB 40 | .AppleDesktop 41 | Network Trash Folder 42 | Temporary Items 43 | .apdisk 44 | /.project 45 | 46 | .idea/ -------------------------------------------------------------------------------- /HTML-CSS-Answers.md: -------------------------------------------------------------------------------- 1 | #前端开发面试题 2 | 3 | ## HTML 4 | 5 | ### DOCTYPE 的作用?标准模式与兼容模式各有什么区别? 6 | 7 | * DOCTYPE 告知浏览器用何种模式解析文档. DOCTYPE 不存在或格式不正确会导致文档以兼容模式呈现 8 | * 在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作 9 | 10 | ### 行内元素有哪些?块级元素有哪些? 空(void)元素有那些? 11 | 12 | * CSS规范规定,每个元素都由 display 属性的默认值确定该元素的类型,例如: 13 | div 的 display 默认值为 block,则为“块级”元素;span 默认 display 属性默认值为 inline 则为“行内”元素 14 | * 行内元素:a b span img input select strong 15 | * 块级元素:div ul ol li dl dt dd h1 h2 h3 h4… p 16 | * 常见的空元素:br hr img input link meta base area embed source 17 | 18 | ### 行内元素和块级元素有什么区别? 19 | 1. 是否独占一行 20 | - 块级元素会独占一行。默认宽度是自身父容器的 100%(与父元素的宽度一致),与内容无关 21 | - 行内元素不会独占一行,相邻的行内元素会排在同一行,其宽度随内容的变化而变化 22 | 2. 是否能够设置宽度和高度 23 | - 块级元素可以设置宽度和高度 24 | - 行内元素设置宽度和高度无效(可以设置 line-height) 25 | 3. 是否可以设置垂上下 margin, padding 26 | - 块级元素设置上下左右 margin, padding 都有效 27 | - 行内元素设置左右 margin, padding 有效,设置上下 margin, padding 无效 28 | 4. 嵌套关系 29 | - 块级元素可以包含行内元素和块级元素 30 | - 行内元素不能包含块级元素,只能包含文本和其它行内元素 31 | 32 | 33 | ### 页面导入样式时,使用 link 和 @import 有什么区别? 34 | 35 | * link 属于HTML标签,除了加载 CSS 外,还能用于定 RSS 等;@import 只能用于加载 CSS 36 | * 页面加载的时,link 会同时被加载,而 @import 引用的 CSS 会等到页面被加载完再加载 37 | * @import 只在 IE5 以上才能被识别,而 link 是 HTML 标签,无兼容问题 38 | 39 | ### 介绍一下你对浏览器内核的理解? 40 | 41 | * 浏览器内核主要分为两部分:渲染引擎(layout engineer 或 Rendering Engine) 和 JS 引擎 42 | * 渲染引擎负责取得网页的内容进行布局计和样式渲染,然后会输出至显示器或打印机 43 | * JS 引擎则负责解析和执行 JS 脚本来实现网页的动态效果和用户交互 44 | * 最开始渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎 45 | 46 | ### 常见的浏览器内核有哪些? 47 | 48 | * Blink 内核:新版 Chrome、新版 Opera 49 | * Webkit 内核:Safari、原 Chrome 50 | * Gecko 内核:FireFox、Netscape6 及以上版本 51 | * Trident 内核(又称 MSHTML 内核):IE、国产浏览器 52 | * Presto 内核:原 Opera7 及以上 53 | 54 | ### 简述一下你对 HTML 语义化的理解? 55 | 56 | * 即使在没有样式 CSS 情况下,页面结构仍然清晰刻度 57 | * 方便其他设备(如屏幕阅读器、盲人阅读器、移动设备)解析,以意义的方式渲染网页 58 | * 搜索引擎的爬虫也依赖于 HTML 标记来确定上下文和各个关键字的权重,利于 SEO 59 | * 便于团队开发和维护,可以减少差异化 60 | 61 | ### HTML5 为什么只需要写 ``? 62 | 63 | * HTML5 不基于 SGML(标准通用标记语言),因此不需要对 DTD 进行引用 64 | * HTML5 仍需要通过 DOCTYPE 来规范浏览器的行为(让浏览器按照它们应该的方式来运行) 65 | * HTML4.01 基于 SGML,所以需要对 DTD 进行引用,告知浏览器文档所使用的文档类型 66 | 67 | ### HTML5 有哪些新特性? 68 | 69 | 70 | - 介绍 HTML5 新特性 71 | 72 | * 语义升级:能够更恰当地描述页面内容 73 | - 新增语义标签 74 | - `
`、`