使用 Object.create(null) 创建空对象

使用对象字面量形式时,隐式地创建了一个以 Object.prototype 作为原型的对象。 以下两种方式等同。 123var o1 = {}var o2 = Object.create(Object.prototype) 更省事的方法 1var o3 = Object.create(null...

给开发减压的 gulp.watch 配置

Gulp 的文件监听使用了 gaze,如果只看了 Gulp 的 API 文档可能会漏掉一些参数。 Gulp 文档 中提到: gulp.watch(glob[, opts], tasks) 12345optsType: ObjectOptions, that are passed to gaze. options ...

Holy Awesome Spacemacs

又名:多年 Vim 用户笑迎 Spacemacs

前端 Log 小记

曾经有一个出现bug的页面出现在我面前,我没有珍惜,直到用户关掉页面了,才后悔莫及。

[译] 使用重构件(Codemod)加速 JavaScript 开发

语言特性升级,代码风格最佳实践变变变,各种 Lint 工具的报告分分钟逼死强迫症。用 Facebook 提供的基于 AST 变换的工具,轻松处理批量文件。

[译] Javascript 姿势提升简略

成为一个更好的 Javascript 开发者。代码组织,Linting,测试。

Test FileReader methods

最近一个需求,需要用浏览器读取图片在前端缩略显示并且根据文件信息排序。 最近jsperf挂了, V2还在开发不太好用, 现在这里存个档。 使用Benchmark.js测试性能 写一个小页面测试两种方法速度: 12345678910111213141516171819202122232425262728293031...

使用python编写vim脚本 对齐赋值语句

JSer们,不管是前后端,文件头的dependency部分堆积了一群犬牙交错的require语句的时候,内心有没有过一个冲动把它们全都捋一遍全对齐了!各种foramtter给平日的眼净心静贡献了不少力量,不过我印象中ST,VIM,Webstorm好像都没有这么个插件,干脆自己写一个吧。 需求 以等号对齐requ...

用Tagbar在VIM中查看scss文件代码结构

~/.ctags里加上这几行定义下scss文件的规则:

1
2
3
4
5
6
--langdef=scss
--langmap=scss:.scss
--regex-scss=/^[ \t]*([^\t {}][^{}]{1,100})(\t| )*\{/| \1/d,definition/
--regex-scss=/^[@]mixin ([^ ()]+).*/\1/m,mixin/
--regex-scss=/^[@]function ([^ ()]+).*/\1/f,function/}
--regex-scss=/^\$([A-Za-z0-9._-]+)\s?:.*/\1/v,variable/}

~/.vimrc里加上这几行(前提是VIM有安装Tagbar插件哦)

1
2
3
4
5
6
7
8
9
10
let g:tagbar_type_scss = {
\ 'ctagsbin' : 'ctags',
\ 'ctagstype' : 'scss',
\ 'kinds' : [
\ 'd:definition',
\ 'f:functions',
\ 'm:mixins',
\ 'v:variables',
\ ],
\ }

写正则真是越来越好玩了。

用 JS 写简单的 CSS Parser

用正则表达式提取规则 JotForm团队的一篇文章 1([\\s\\S]*?){([\\s\\S]*?)} 分解一下 12345678([\\s\\S]*?) => any string as selector{ => then an opening bracket([\...