LiveScript和CoffeeScript的比較

LiveScript比CoffeeScript好的地方:前端

  • [ x to y ][ x til y], 比 [ x .. y ][ x ... y ]清楚多了。for i from x to yfor i from x til y同理。
  • 默認狀況下變量賦值不會污染外層的變量,不再用do ( x = undefined, y = undefined, ...) ->了。若是須要修改外層變量的值,則使用:=
  • const定義常量,相似於ES6中的const,可是最終會編譯成var,兼容不支持const的引擎。
  • do換成了let,更明白清晰。
  • require能夠寫得更短:require! lib代替lib = require 'lib'
  • 各類函數式編程的語法糖,(+ 2) 4times = (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,讓人忍不住想用函數式的寫法,可是並無尾遞歸優化等支持。函數式編程

相關文章
相關標籤/搜索