Yanqi Zong
Yanqi Zong
add Chinese Translation
# 易企秀H5项目重构总结 ## 重构的缘由 易企秀([http://www.eqxiu.com/](http://www.eqxiu.com/))在2015年12月, 我入职的时候, 整个项目是一个大型的单页应用. 包括了首页, 作品列表页, 编辑器, 作品详情, 秀场等. 由于业务的急剧膨胀, 大项目组已经无法满足敏捷开发的需要, 产品会变得冗长低效, 产品层面上整个主站需要进行剥离, 工程项目的拆分及重构也势在必行. 易企秀的核心业务是 H5编辑和预览. 由于迭代迅速, 功能往往以实现为主, 缺乏设计, 代码略显混乱. 前端组认为为了未来支持更为丰富的组件和编辑功能, 需要对预览还有编辑器项目进行一次’重构’.  (上图: 场景预览)  (上图:...
# 彻底搞懂 async & defer ## TL;DR 两者都会并行下载,不会影响页面的解析。 defer 会按照顺序在 DOMContentLoaded 前按照页面出现顺序依次执行。 async 则是下载完立即执行。 ## 兼容性 + [can i use async](http://caniuse.com/#search=async) + [can i use defer](http://caniuse.com/#search=defer) ## 普通 script 先来看一个普通的...
## 回顾 在上一篇[易企秀H5项目重构总结](https://github.com/xiaoyu2er/blog/issues/7) 中, 笔者详细记录了重构项目的缘由, 技术选型及实践, 灰度及 bug 修复, 编辑器功能边界划分及模块化实践, code review 实践 及 总结. 距离上次总结已经过去了一年的时间, 在这段时期, 笔者又基于当初的项目架构, 横向扩展了 wap 编辑器和 混合模式编辑器, 其中 wap 编辑器在线上正常运营, 而混合模式则碰到了很多技术瓶颈, 虽达到测试上线标准, 但是最终夭折腹中, 没有正式上线; 除此之外,...
承接上篇 [44个 Javascript 变态题解析 (上)](https://github.com/xiaoyu2er/blog/issues/1) ## 第23题 ``` [1 < 2 < 3, 3 < 2 < 1] ``` 这个题也还可以. 这个题会让人误以为是 `2 > 1 && 2 < 3` 其实不是的. 这个题等价于...
原题来自: [javascript-puzzlers](http://javascript-puzzlers.herokuapp.com/) 读者可以先去做一下感受感受. 当初笔者的成绩是 21/44... 当初笔者做这套题的时候不仅怀疑智商, 连人生都开始怀疑了.... 不过, 对于基础知识的理解是深入编程的前提. 让我们一起来看看这些变态题到底变态不变态吧! ## 第1题 ``` ["1", "2", "3"].map(parseInt) ``` 知识点: - [Array/map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) - [Number/parseInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/parseInt) - [Global_Objects/parseInt](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/parseInt) - [JavaScript parseInt](http://www.w3school.com.cn/jsref/jsref_parseInt.asp) 首先, map接受两个参数, 一个回调函数...
# 职位描述 参与微贷事业部 花呗、借呗、网商银行 等金融业务产品线研发,参与移动端 H5、React、Node.js 应用框架体系建设以及前端工程体系建设。 ## 前端方向: 1. 熟练掌握移动端 H5 开发、熟悉主流移动浏览器的技术特点; 2. 熟练运用 JavaScript 语言与 HTML5、CSS3 等技术; 3. 熟悉模块化、前端编译和构建工具,熟练运用主流的移动端 JS 库和开发框架,并深入理解其设计原理,例如:Zepto、React 等; 4. 能提供完善的 WebApp 技术方案,了解 native 移动应用开发,有类...
实现一个 Lazyman: > LazyMan(“Hank”)输出: > Hi! This is Hank! > > LazyMan(“Hank”).sleep(10).eat(“dinner”)输出 > Hi! This is Hank! > //等待10秒.. > Wake up after 10 > Eat dinner~ > > LazyMan(“Hank”).eat(“dinner”).eat(“supper”)输出...
## 题目 100*100的 canvas 占多少内存? 在 [三年前端,面试思考](https://juejin.im/post/5bd97627f265da39651c0a4b) 中提到了一个题目,非常有新意,这里分享一下当时面试的思考过程。 ## 解题思路 其实真正的答案是多少我并不清楚,面试过程中面试官也不期待一个准确的答案,而是看你的思考过程。 如果了解过 Canvas 且做过滤镜相关的工作,可能调用过 `imageData = ctx.getImageData(sx, sy, sw, sh);` 这个 API。我记得这个 API 返回的是一个 ImageData 数组,包含了 sx, sy, sw, sh...