LiveScript比CoffeeScript好的地方:
-
[ x to y ]和[ x til y], 比[ x .. y ]和[ x ... y ]清楚多了。for i from x to y和for i from x til y同理。 - 默认情况下变量赋值不会污染外层的变量,再也不用
do ( x = undefined, y = undefined, ...) ->了。如果需要修改外层变量的值,则使用:=。 -
const定义常量,类似于ES6中的const,但是最终会编译成var,兼容不支持const的引擎。 -
do换成了let,更明白清晰。 -
require可以写得更短:require! lib代替lib = require 'lib' - 各种函数式编程的语法糖,
(+ 2) 4,times = (x, y) --> x * y; double = times 2,[1 2 3] |> map (* 2) |> sum等等。
LiveScript的问题:
有些语法不太好记,JavaScript里的
==和===已经让人迷惑了,LiveScript里则是~=、==和===。LiveScript里,以下值为true1 ~= '1',[1, 2, 3] === [1, 2, 3],但是[1, 2, 3] ~= '[1, 2, 3]'是false。sourcemap支持还没有。后端开发的话,直接
lsc运行,问题不大,但是前端在浏览器里调试就痛苦了。语法吸收了很多Haskell,让人忍不住想用函数式的写法,但是并没有尾递归优化等支持。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。