这几天翻看了下被传的神乎其神的《你不知道的JS》这本书,其实以前就看过一次,不过当时的level并不高,而且感觉这本书讲的有点绕,所以看了一点就没坚持下去。
这次翻看感觉还是比较轻松的,有些地方写的很好,有的地方还是感觉讲的有点绕(可能是翻译的问题),但总的来说这本书还是很不错的,基本都是JS中有坑、新手难以理解的点,简直就是《JS:The Bad Parts》(哈,开个玩笑~)。
这个小记不是打算记录书中内容的笔记,而是想补充纠正书中的讲的不完善的地方。
DaraW
Code is Poetry
ES6实现内部类的写法
最近在把 JIris
移植到JS平台 Iris.js
的过程中不断的在Java和JS两种语言之间切换,ES6的 Class
某种程度来说可以写出更加优雅的代码,而不用去管背后的原型实现。但是不得不说有一个遗憾就是 ES6 虽然支持了静态方法,但是还不支持静态属性和静态类,于是仔细观察了下发现了几种ES6实现静态类的相对优雅的写法。
IntelliJ IDEA在Linux下字体不正常解决方案
之前遇到了一件奇怪的事,WebStorm中字体正常,IDEA直接导入WebStorm的设置备份也还是不行,如图所示。
node-thunkify源码阅读笔记
Node7发布后已经可以通过添加--harmony-async-await
的参数调用来直接支持async/await
语法了,据说Node8还会进一步推进其发展,于是研究了一下JS的异步流程控制和下一代Node Web框架Koa2
。
关于generator
async/await
的发展史已有一大堆文章讲过了,这里不再赘述。
tj的co
是Koa2
上个大版本Koa1
的核心,在没有async/await
的时候一般会借助co
来做自动流程控制。关于co
的源码分析文章也有很多,代码不长值得一读,参考了一些分析文章也算是了解了其逻辑和思路。
在co
中出现了一个thunkToPromise
的函数,一些文章都跳过了这个并表示thunk
函数已经没什么意义了,但本着好奇心读了阮一峰的Thunk 函数的含义和用法,文中一个地方一时没有搞懂,故写此文记录一下。
如何监听JS变量的变化
如何监听 js 中变量的变化?
我现在有这样一个需求,需要监控js的某个变量的改变,如果该变量发生变化,则触发一些事件,不能使用timeinterval之类的定时去监控的方法,不知道有比较好的解决方案么?
这个问题问的很好。
流行的MVVM的JS库/框架都有共同的特点就是数据绑定,在数据变更后响应式的自动进行相关计算并变更DOM展现。所以这个问题也可以理解为如何实现MVVM库/框架的数据绑定。
常见的数据绑定的实现有脏值检测,基于ES5的getter
和setter
,以及ES已被废弃的Object.observe
,和ES6中添加的Proxy
。
JS实现自定义事件
制作列带有斑马条纹背景的表格
在切页面时,遇到了一个有趣的表格,如图所示:
git用户名莫名其妙变化及挽救措施
昨晚提交了一次commit并推到github的远程仓库后,突然发现最近的commit提交都没有记录到contributions里,而且commit记录中我的头像无法正常显示。