之前看到同事在使用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飞一样的感觉是不会远了。
 

最新文章

  1. 11.struts2文件上传
  2. DPA/Ignite由于DNS问题导致连接不上被监控的数据库服务器
  3. Channel States
  4. Maven学习总结(四)——Maven核心概念--转载
  5. UITableview cell 的多选
  6. libvirtError: no connection driver available for qemu:///system 解决办法
  7. 【JavaScript】JS中没有代码块的概念
  8. React Native学习-measure测量view的宽高值
  9. server2008R2服务器开启远程
  10. ThinkPHP Volist标签
  11. CentOS6.5 部署VPN管理系统(StrongSwan+iKEv2+Freeradiu+Mysql+Daloradius)
  12. linux交换空间
  13. Node.js URL
  14. MySql恢复密码的过程
  15. 使用Apache下poi创建和读取excel文件
  16. 使用curl自动签到smzdm
  17. ELF格式探析之三:sections
  18. hdu 3832 Earth Hour bfs
  19. P3402 最长公共子序列
  20. C#并行编程-PLINQ:声明式数据并行-转载

热门文章

  1. JDBC_demo:java连接mysql过程
  2. [LeetCode] 234. Palindrome Linked List 解题思路
  3. cpp
  4. Django自定义用户认证
  5. useradd、passwd、userdel
  6. The server does not support version 3.1 of the JEE Web module specification.
  7. WindowsService的调试方法
  8. 模仿微信"转你妹"游戏
  9. Excel异常Cannot get a text value from a numeric cell
  10. iBatis自动生成的主键 (Oracle,MS Sql Server,MySQL)【转】