LiveScript和CoffeeScript的比较
发布于 1年前 作者 weakish 982 次浏览

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,让人忍不住想用函数式的写法,但是并没有尾递归优化等支持。


via my blog

3 回复

听说 Coco 是 coffee + Perl, LiveScript 是 coffee + Haskell. 语法真是要命得多

LiveScript 也算 Coco 的分支,所以也有Perl的味道,各种符号,比Haskell复杂得多

回到顶部