之前看到同事在使用coffeescript写js,当我看到那简介的coffee文件,就深深的被coffescript吸引了,简洁的语法,熟练之后会大大提升javascript的开发速度,写脚本也能像飞一样。
学习资料:
推荐资料:
CoffeeScript 详解 https://ruby-china.org/topics/4789
会ruby语言的同学轻松上手,不过coffeescript的语法是相当简单的,看一遍官网,你绝对会有想要试试的冲动,请不要抑制这股冲动,放手去写个demo吧,只有亲自体会过后你会更加喜欢coffeescript
前人已经介绍了很多coffeescript语法,我这里就不再赘述了,下面说一下自己写完一个demo的感觉。
我用coffeescript写了一个悬浮选择颜色标签的jQuery插件,代码很简单,目的是练习嘛。
demo代码参考: http://runjs.cn/code/v0rmoroh
1.函数返回语句
coffeescript生成的js中,会对每个方法生成returen语句,默认返回函数的最后一行,考虑有的时候并不是每个函数都必须返回,所以这一点有点不习惯,所以我在对不需要返回的函数末行都写了false.
其实返回this最好,但要注意this在上下文的含义,我在写demo时遇到的问题是,为元素绑定点击事件,就是因为 $.each() 返回的是this结果导致事件被触发了多次,最后修正还是返回false踏实一些。
2.函数调用
对于调用有参数的函数还好,直接 functionName arg1,agr2 。 如果是无参数函数,还是需要显示调用,就是加上小括号: functionName()
还有就是嵌套调用,这个也是需要自己显示的加上括号以及传递参数。
例如: offset.top += (parseInt ele.css 'height' )+5
--->
offset.top += (parseInt(ele.css('height'))) + 5;
链式调用时使用 '.' 点号来进行连接,跟一般链式没有区别
3. 记得编译时加入-w参数
-w 参数的意义在于,你在开发阶段,没保存一次coffee文件就被自动编译成.js文件。
4.注释
coffeescript中的注释是# 如果使用// 或者/**/ 在编译时会报错的
遗憾是,在coffee文件中的注释在编译好的js中注释都被去掉了,所以在阅读js时没有注视的感觉,唉~
coffeescript 注释方式:
###
这里是注释
###
另外一点,块注释一定要紧紧放在被注释的代码上面,否则会编译出错,千万不要如下图:
--补
感谢 @ 枉然不供 提供的注释方式.
目前就这么多,后续有问题在更新上来,继续学习coffee语法。
我相信熟练使用coffeescript后在配合vim 写javascript飞一样的感觉是不会远了。