某人2013js趋势的一些判断

2012 年,JavaScript 程序员中,只有 9% 对 Node 不感兴趣,有 29% 在使用 CoffeeScript 等语言,测试框架中最流行的是 Jasmine,但 Mocha 上升最快,已接近 Jasmine,WebKit Inspector 已成为最流行的调试工具,Uglify 成为了最流行的压缩工具,JSHint 上升很快,已逼近 JSLint.http://t.cn/zjWb5rf


2013 年,可以预测:CoffeeScript 的使用率会进一步提高,Mocha 将成为最流行的测试类库,WebKit 调试工具会更好用,Uglify 会更受欢迎,JSHint 会超越 JSLint,还有一个不靠谱的预测是:SeaJS 将会出现在国际社区并有潜力超越 RequireJS……


再来几个不靠谱的预测:Stylus 会逐步流行起来,超越 LESS 和 SASS;随着 jQuery 2.0 的到来,Zepto 的使用量会降低;Node 的观望人群会越来越多,Node 上的各类工具会进一步丰富;不少前端会去尝试 Go;Mobile 上 native 开发迎来秋天,但 HTML5 迎来春天……


jshint介绍:http://ued.ctrip.com/blog/?p=2733#more-2733



jquery 1.5 代码压缩工具已经从GCL(Google Closure)切换到了UglifyJS,UglifyJS的压缩效果非常好,并且压缩后的代码是安全的。


下面是UglifyJS 与  YUI 、 GCL 间压缩结果对比。

Library Orig. size UglifyJS YUI GCL

DynarchLIB 636896   241441   246452 (+5011)   240439 (-1002) (buggy)

jQuery        163855   72006     79702 (+7696)      71858 (-148)


uglifyjs通过下面方式来达到代码高度压缩:


  • foo[“bar”] ==>  foo.bar

  • 删除{}块

  • var a = 10; var b = 20; ==>  var a=10,b=20;

  • 1 +2 * 3 ==>  7

  • 连续的代码块会合并成一个

  • 删除一些无法访问的代码

    对于if语句uglifyjs 会做下面的优化

  • if (foo) bar(); else baz(); ==> foo?bar():baz();

  • if (!foo) bar(); else baz(); ==> foo?baz():bar();

  • if (foo) bar(); ==> foo&&bar();

  • if (!foo) bar(); ==> foo||bar();

  • if (foo) return bar(); else return baz(); ==> return foo?bar():baz();

  • if (foo) return bar(); else something(); ==> {if(foo)return bar();something()}


posted on 2012-12-27 10:36  dhj  阅读(182)  评论(0编辑  收藏  举报

导航