🌙:
摘要: 一个示例 考察下面的代码: <head> <title>css filter issue</title> <style> body { height: 200vh; background: ddd; } .container { background:阅读全文
posted @ 2019-04-22 23:49 刘哇勇 阅读(11) 评论(0) 编辑
摘要: ES5 之前,继续是这样实现的 function Parent() { this.foo = function() { console.log('foo'); }; } Parent.prototype.bar = function() { console.log('bar'); } functio阅读全文
posted @ 2019-04-21 22:29 刘哇勇 阅读(24) 评论(1) 编辑
摘要: React 使用虚拟 DOM 将计算好之后的更新发送到真实的 DOM 树上,减少了频繁操作真实 DOM 的时间消耗,但将成本转移到了 JavaScript 中,因为要计算新旧 DOM 树的差异嘛。所以这个计算差异的算法是否高效,就很关键了。React 中其计算差异的过程叫 Reconciliatio阅读全文
posted @ 2019-04-20 21:34 刘哇勇 阅读(110) 评论(0) 编辑
摘要: 对于选项很多的下拉框 <select>,人工定位到想要的项目是很费劲的。浏览器其实原生支持下拉选择框根据键盘输入自动定位到相应条目的。 通过输入条目字母定位到下拉框中条目的位置 方便是方便,有个问题是连续输入不能间隔太久,这个间隔实测中感受是非常短的,如果想找的条目比较难输入,就无法在短阅读全文
posted @ 2019-04-19 23:07 刘哇勇 阅读(18) 评论(0) 编辑
摘要: 问题 考察如下代码,脑回路中运行并输出结果: console.log("1"); setTimeout(function setTimeout1() { console.log("2"); process.nextTick(function nextTick1() { console.log("3"阅读全文
posted @ 2019-04-18 23:33 刘哇勇 阅读(155) 评论(1) 编辑
摘要: 命令行中修改已经输入的命令比较麻烦,如果你不知道一些快捷键的话,只能使用方向键一个一个字符地移动到目标位置进行修改,对于比较复杂且过长的命令来说,效率不高。 以下信息来自 bash 的 man 页面: $ man bash ... Commands for Moving beginning of l阅读全文
posted @ 2019-04-17 23:21 刘哇勇 阅读(163) 评论(0) 编辑
摘要: Shim: 用来向后兼容。比如 requestIdleCallback,为了在旧的环境中不报错,可以加 shim。 使用环境中现有的 api 来实现,不会引入额外的依赖或其他技术。 Polyfill: 用来增强,添加新功能。比如 IE7 不支持 localStorage,能添加 polyfill 来阅读全文
posted @ 2019-04-16 23:28 刘哇勇 阅读(22) 评论(0) 编辑
摘要: React 中需要操作元素时,可通过 findDOMNode() 或通过 createRef() 创建对元素的引用来实现。前者官方不推荐,所以这里讨论后者及其与 TypeScript 结合时如何工作。 React 中的元素引用 正常的组件中,可通过创建对元素的引用来获取到某元素然后进行相应操作。比如阅读全文
posted @ 2019-04-15 23:32 刘哇勇 阅读(112) 评论(0) 编辑
摘要: 支撑现有 Web 服务的 HTTP 协议距离其发布时的 1997 年已经有些年月了,随后的 HTTP/1.1 版本发布自 1999 年。随着技术的进步和需求的进化,对于数据快速高效地传输,HTTP/1.1 显得捉襟见肘,大部分优化是在应用层来做的,因为协议是改不了的嘛,比如雪碧图减少请求数,域名共享阅读全文
posted @ 2019-04-14 21:15 刘哇勇 阅读(173) 评论(0) 编辑
摘要: 需要理解的是,TypeScript 作为语言,他只处理代码模块。其他类型的文件这种非代码模块的导入,讲道理是通过另外的打包工具来完成的,比如 Web 应用中的图片,样式,JSON 还有 HTML 模板文件。只是我们需要在 TypeScript 层面解决模块解析报错的问题。 通配符模块声明 直接导入非阅读全文
posted @ 2019-04-13 23:16 刘哇勇 阅读(159) 评论(0) 编辑
摘要: 日常开发中,编写 Node.js 命令行工具来完成一些小任务是很常见的操作。其编写也不难,和日常编写 Node.js 代码并无二致。 package.json 中的 bin 字段 一个 npm 模块,如果在 package.json 中指定了 bin 字段,那说明该模块提供了可在命令行执行的命令,这阅读全文
posted @ 2019-04-12 23:16 刘哇勇 阅读(210) 评论(0) 编辑
摘要: 方法重载(overload)在传统的静态类型语言中是很常见的。JavaScript 作为动态语言, 是没有重载这一说的。一是它的参数没有类型的区分,二是对参数个数也没有检查。虽然语言层面无法自动进行重载,但借助其动态的特性,我们可以在代码中手动检查入参的类型,或者通过 arguments 获取到参数阅读全文
posted @ 2019-04-11 23:08 刘哇勇 阅读(186) 评论(0) 编辑
摘要: 无疑,对于大型项目来说,Vanilla Js 无法满足工程需求。早在 2016 年 Anuglar 在项目中引入 TypeScript 时,大概也是考虑到强类型约束对于大型工程的必要性,具体选型考虑可参考这篇文章。然后可以看到 TypeScript 在社区中逐渐升温。但凡社区中举足轻重的库,如果不是阅读全文
posted @ 2019-04-10 23:41 刘哇勇 阅读(517) 评论(3) 编辑
摘要: 日常作业中免不了频繁处理 GET/POST 的入参,你当然可以每个 action 中都重复地去做这些事情, 从 query 或 body 取出入参, 对可选的入参进行判空, 处理入参的类型转换, 对入参进行逻辑校验,数字是否超限,类型是否非法等... 但这些通用的逻辑可通过抽取到插件或服务中,避免代阅读全文
posted @ 2019-04-09 23:26 刘哇勇 阅读(195) 评论(0) 编辑
摘要: 不像 express 中在末尾处注册一个声明为 (err, req, res, next) 中间件的方式,koa 刚好相反,在开头进行注册。 app.use(async (ctx, next) => { try { await next(); } catch (err) { ctx.statu阅读全文
posted @ 2019-04-08 23:17 刘哇勇 阅读(106) 评论(0) 编辑

Bingo!!

少年,我看你骨骼清奇,怕是一名前端吧‽

博聚网