Javascript 瓶盖换啤酒问题

题目是这样的,啤酒2块钱一瓶,2个空瓶子或者4个瓶盖可以换一瓶新的,如果手上有10元钱,可以喝多少瓶啤酒。写了个 JS 脚本来计算,代码如下(demo):

BTW:题目的答案是最终可以喝 15 瓶(计算过程如下图),你答对了吗?

基于 ES6 Promise 的 AJAX 简单封装

基于 Promise 的 ajax 请求,可以实现链式调用,使代码结构更清晰,代码如下:

预览效果 | 源码 | 参考资料

Javascript Currying

当我们把一个多参数的函数,分解为若干个但参数的函数时,我们就在进行函数柯里化(Currying)。一个小例子

参考文章:尾调用优化Thunk 函数的含义和用法

PS:柯里化的对偶是反柯里化(Uncurrying),且听下回分解吧。

随机数求和

题设:生成 N 个随机正整数,使他们的和等于某个数。JS 实现了一下,记录之:

点击查看 DEMO备用地址) | 源码调试

解决 babel 6 升级后使用 import 关键字报错的问题

有几个项目使用了 es6 + babelify(babel) + gulp 的发布工具,一开始用着还挺好,后来手贱 npm outdated 并升级了几个插件以后,就嗝屁了,编译时提示错误:

如果把 babelify 降级使用倒是可以正常,但是作为一个追新党不能忍,最后通过不懈的搜索终于发现了问题的所在,原来是 babel 升级为 6.0 后,对 es6 的支持从 core 里面分离开来,需要单独安装插件 babel-preset-es2015 和 babel-preset-react,并进行相关配置。安装方法如下:

gulpfile.js 的 transform 中需要添加如下配置(browserify 为例):

详细代码及插件结构参见:package.json, gulpfile.js