摘要:
问题描述 给定一个数组及数字 k ,从数组中找出所有相加结果为 k 的组合。 示例: 给定数组 [1,1,1] 令 k=2,输出: [[1,1]] 给定数组 [10, 1, 2, 7, 6, 1, 5] 令 k=8,输出: [ [ 1, 2, 5 ], [ 1, 7 ], [ 1, 1, 6 ], 阅读全文
摘要:
日期时间类型中包含以下几种数据类型: DATE TIME DATETIME TIMESTAMP YEAR 各类型都有具体的取值范围,超出或非法的其他值时,MySQL 会回退到 0。TIMESTAMP 类型是个例外,给它设置一个超出范围的值时,将保存上该类型允许的最大值。 MySQL 按标准格式 YY 阅读全文
摘要:
MySQL 中数据类型常用的就三大类: 数字类型/numeric types 日期和时间/date and time types 字符类型/string (character and byte) types 另外还包含两个没那么常用的大类: 特殊类型/spatial types JSON 继续之前, 阅读全文
摘要:
业务中经常会有一些批量操作的任务,比如使用 JavaScript 预加载一组图片,批量上传一些资源。如果这些任务一次性启动,势必会消耗很多资源和带宽。理想的做法应该对这些任务进行限制,比如一次只跑几个,当其中一些任务完成后,再添加新的任务到队列。 总的来说,我们需要这样一个服务,它提供一个添加任务的 阅读全文
摘要:
SASS 中定义的变量,后设置的值会覆盖旧的值。 $color: red; $color: blue; .btn { color: $color; } 编译后为: .btn { color: blue; } 如果你编写了一个 UI 库提供 SASS 文件,可能会提供一些参数供用户使用时自定义。而在 阅读全文
摘要:
通过完成一个 todo 应用展示 Node.js + MySQL 增删改查的功能。这里后台使用 Koa 及其相应的一些中间件作为 server 提供服务。 初始化项目 $mkdirnode-crud&&cd$_ $yarninit-y&&npxgitignorenode 上面的命令创建了一个空文件夹 阅读全文
摘要:
安装 通过官网选择版本下载安装。Mac 上可通过 Homebrew 方便地安装: $ brew install mysql 检查安装是否成功: $ mysql version mysql Ver 8.0.15 for osx10.14 on x86_64 (Homebrew) 注意到安装成功后的提示 阅读全文
摘要:
async/await 虽然取代了回调,使用类似同步的代码组织方式让代码更加简洁美观,但错误处理时需要加 try/catch。 比如下面这样,一个简单的 Node.js 中使用 async/await 的场景: const fetch = require("node fetch"); async f 阅读全文
摘要:
KMP(The Knuth Morris Pratt Algorithm)算法用于字符串匹配,从字符串中找出给定的子字符串。但它并不是很好理解和掌握。而理解它概念中的部分匹配表,是理解 KMP 算法的关键。 这里的讨论绕开其背后晦涩难懂的逻辑,着重从其运用上来理解它。 字符串查找 比如从字符串 ab 阅读全文
摘要:
一个示例 考察下面的代码: <head> <title>css filter issue</title> <style> body { height: 200vh; background: ddd; } .container { background: 阅读全文
摘要:
ES5 之前,继续是这样实现的 function Parent() { this.foo = function() { console.log('foo'); }; } Parent.prototype.bar = function() { console.log('bar'); } functio 阅读全文
摘要:
React 使用虚拟 DOM 将计算好之后的更新发送到真实的 DOM 树上,减少了频繁操作真实 DOM 的时间消耗,但将成本转移到了 JavaScript 中,因为要计算新旧 DOM 树的差异嘛。所以这个计算差异的算法是否高效,就很关键了。React 中其计算差异的过程叫 Reconciliatio 阅读全文
摘要:
对于选项很多的下拉框 <select>,人工定位到想要的项目是很费劲的。浏览器其实原生支持下拉选择框根据键盘输入自动定位到相应条目的。 通过输入条目字母定位到下拉框中条目的位置 方便是方便,有个问题是连续输入不能间隔太久,这个间隔实测中感受是非常短的,如果想找的条目比较难输入,就无法在短 阅读全文
摘要:
问题 考察如下代码,脑回路中运行并输出结果: console.log("1"); setTimeout(function setTimeout1() { console.log("2"); process.nextTick(function nextTick1() { console.log("3" 阅读全文
摘要:
命令行中修改已经输入的命令比较麻烦,如果你不知道一些快捷键的话,只能使用方向键一个一个字符地移动到目标位置进行修改,对于比较复杂且过长的命令来说,效率不高。 以下信息来自 bash 的 man 页面: $ man bash ... Commands for Moving beginning of l 阅读全文
摘要:
Shim: 用来向后兼容。比如 requestIdleCallback,为了在旧的环境中不报错,可以加 shim。 使用环境中现有的 api 来实现,不会引入额外的依赖或其他技术。 Polyfill: 用来增强,添加新功能。比如 IE7 不支持 localStorage,能添加 polyfill 来 阅读全文
摘要:
React 中需要操作元素时,可通过 findDOMNode() 或通过 createRef() 创建对元素的引用来实现。前者官方不推荐,所以这里讨论后者及其与 TypeScript 结合时如何工作。 React 中的元素引用 正常的组件中,可通过创建对元素的引用来获取到某元素然后进行相应操作。比如 阅读全文
摘要:
支撑现有 Web 服务的 HTTP 协议距离其发布时的 1997 年已经有些年月了,随后的 HTTP/1.1 版本发布自 1999 年。随着技术的进步和需求的进化,对于数据快速高效地传输,HTTP/1.1 显得捉襟见肘,大部分优化是在应用层来做的,因为协议是改不了的嘛,比如雪碧图减少请求数,域名共享 阅读全文
摘要:
需要理解的是,TypeScript 作为语言,他只处理代码模块。其他类型的文件这种非代码模块的导入,讲道理是通过另外的打包工具来完成的,比如 Web 应用中的图片,样式,JSON 还有 HTML 模板文件。只是我们需要在 TypeScript 层面解决模块解析报错的问题。 通配符模块声明 直接导入非 阅读全文
摘要:
日常开发中,编写 Node.js 命令行工具来完成一些小任务是很常见的操作。其编写也不难,和日常编写 Node.js 代码并无二致。 package.json 中的 bin 字段 一个 npm 模块,如果在 package.json 中指定了 bin 字段,那说明该模块提供了可在命令行执行的命令,这 阅读全文