zoukankan      html  css  js  c++  java
  • CoffeeScript飞一样的写javascript

      之前看到同事在使用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飞一样的感觉是不会远了。
     
  • 相关阅读:
    Redis的四种模式,单机、主从、哨兵、集群
    .NET 跨域问题
    C# 利用正则表达式获取富文本框中所有图片路劲
    ActiveMQ入门实例(.NET)
    ActiveMQ的使用以及应用场景
    关于消息队列的使用方法(RocketMQ)
    Redis系列 需要注意事项
    .NET:在线悲观锁、在线乐观锁、离线悲观锁、离线乐观锁代码示例
    C# 简单介绍Redis使用
    API Get跟Post 的区别?
  • 原文地址:https://www.cnblogs.com/kids/p/coffee.html
Copyright © 2011-2022 走看看