🌜
摘要: 安装 通过官网选择版本下载安装。Mac 上可通过 Homebrew 方便地安装: $ brew install mysql 检查安装是否成功: $ mysql version mysql Ver 8.0.15 for osx10.14 on x86_64 (Homebrew) 注意到安装成功后的提示阅读全文
posted @ 2019-04-25 23:48 刘哇勇 阅读(48) 评论(1) 编辑
摘要: async/await 虽然取代了回调,使用类似同步的代码组织方式让代码更加简洁美观,但错误处理时需要加 try/catch。 比如下面这样,一个简单的 Node.js 中使用 async/await 的场景: const fetch = require("node fetch"); async f阅读全文
posted @ 2019-04-24 23:34 刘哇勇 阅读(31) 评论(0) 编辑
摘要: KMP(The Knuth Morris Pratt Algorithm)算法用于字符串匹配,从字符串中找出给定的子字符串。但它并不是很好理解和掌握。而理解它概念中的部分匹配表,是理解 KMP 算法的关键。 这里的讨论绕开其背后晦涩难懂的逻辑,着重从其运用上来理解它。 字符串查找 比如从字符串 ab阅读全文
posted @ 2019-04-23 23:46 刘哇勇 阅读(225) 评论(0) 编辑
摘要: 一个示例 考察下面的代码: <head> <title>css filter issue</title> <style> body { height: 200vh; background: ddd; } .container { background:阅读全文
posted @ 2019-04-22 23:49 刘哇勇 阅读(29) 评论(0) 编辑
摘要: ES5 之前,继续是这样实现的 function Parent() { this.foo = function() { console.log('foo'); }; } Parent.prototype.bar = function() { console.log('bar'); } functio阅读全文
posted @ 2019-04-21 22:29 刘哇勇 阅读(31) 评论(1) 编辑
摘要: React 使用虚拟 DOM 将计算好之后的更新发送到真实的 DOM 树上,减少了频繁操作真实 DOM 的时间消耗,但将成本转移到了 JavaScript 中,因为要计算新旧 DOM 树的差异嘛。所以这个计算差异的算法是否高效,就很关键了。React 中其计算差异的过程叫 Reconciliatio阅读全文
posted @ 2019-04-20 21:34 刘哇勇 阅读(120) 评论(0) 编辑
摘要: 对于选项很多的下拉框 <select>,人工定位到想要的项目是很费劲的。浏览器其实原生支持下拉选择框根据键盘输入自动定位到相应条目的。 通过输入条目字母定位到下拉框中条目的位置 方便是方便,有个问题是连续输入不能间隔太久,这个间隔实测中感受是非常短的,如果想找的条目比较难输入,就无法在短阅读全文
posted @ 2019-04-19 23:07 刘哇勇 阅读(23) 评论(0) 编辑
摘要: 问题 考察如下代码,脑回路中运行并输出结果: console.log("1"); setTimeout(function setTimeout1() { console.log("2"); process.nextTick(function nextTick1() { console.log("3"阅读全文
posted @ 2019-04-18 23:33 刘哇勇 阅读(164) 评论(1) 编辑
摘要: 命令行中修改已经输入的命令比较麻烦,如果你不知道一些快捷键的话,只能使用方向键一个一个字符地移动到目标位置进行修改,对于比较复杂且过长的命令来说,效率不高。 以下信息来自 bash 的 man 页面: $ man bash ... Commands for Moving beginning of l阅读全文
posted @ 2019-04-17 23:21 刘哇勇 阅读(168) 评论(0) 编辑
摘要: Shim: 用来向后兼容。比如 requestIdleCallback,为了在旧的环境中不报错,可以加 shim。 使用环境中现有的 api 来实现,不会引入额外的依赖或其他技术。 Polyfill: 用来增强,添加新功能。比如 IE7 不支持 localStorage,能添加 polyfill 来阅读全文
posted @ 2019-04-16 23:28 刘哇勇 阅读(23) 评论(0) 编辑
摘要: React 中需要操作元素时,可通过 findDOMNode() 或通过 createRef() 创建对元素的引用来实现。前者官方不推荐,所以这里讨论后者及其与 TypeScript 结合时如何工作。 React 中的元素引用 正常的组件中,可通过创建对元素的引用来获取到某元素然后进行相应操作。比如阅读全文
posted @ 2019-04-15 23:32 刘哇勇 阅读(118) 评论(0) 编辑
摘要: 支撑现有 Web 服务的 HTTP 协议距离其发布时的 1997 年已经有些年月了,随后的 HTTP/1.1 版本发布自 1999 年。随着技术的进步和需求的进化,对于数据快速高效地传输,HTTP/1.1 显得捉襟见肘,大部分优化是在应用层来做的,因为协议是改不了的嘛,比如雪碧图减少请求数,域名共享阅读全文
posted @ 2019-04-14 21:15 刘哇勇 阅读(183) 评论(0) 编辑
摘要: 需要理解的是,TypeScript 作为语言,他只处理代码模块。其他类型的文件这种非代码模块的导入,讲道理是通过另外的打包工具来完成的,比如 Web 应用中的图片,样式,JSON 还有 HTML 模板文件。只是我们需要在 TypeScript 层面解决模块解析报错的问题。 通配符模块声明 直接导入非阅读全文
posted @ 2019-04-13 23:16 刘哇勇 阅读(164) 评论(0) 编辑
摘要: 日常开发中,编写 Node.js 命令行工具来完成一些小任务是很常见的操作。其编写也不难,和日常编写 Node.js 代码并无二致。 package.json 中的 bin 字段 一个 npm 模块,如果在 package.json 中指定了 bin 字段,那说明该模块提供了可在命令行执行的命令,这阅读全文
posted @ 2019-04-12 23:16 刘哇勇 阅读(220) 评论(0) 编辑
摘要: 方法重载(overload)在传统的静态类型语言中是很常见的。JavaScript 作为动态语言, 是没有重载这一说的。一是它的参数没有类型的区分,二是对参数个数也没有检查。虽然语言层面无法自动进行重载,但借助其动态的特性,我们可以在代码中手动检查入参的类型,或者通过 arguments 获取到参数阅读全文
posted @ 2019-04-11 23:08 刘哇勇 阅读(188) 评论(0) 编辑

Bingo!!

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