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里,如下值为true 1 ~= '1'
, [1, 2, 3] === [1, 2, 3]
,可是[1, 2, 3] ~= '[1, 2, 3]'
是false。后端
sourcemap支持尚未。后端开发的话,直接lsc
运行,问题不大,可是前端在浏览器里调试就痛苦了。浏览器
语法吸取了不少Haskell,让人忍不住想用函数式的写法,可是并无尾递归优化等支持。函数式编程