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,讓人忍不住想用函數式的寫法,可是並無尾遞歸優化等支持。函數式編程