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

CoffeeScript飞一样的写javascript的更多相关文章

  1. 使用Typescript来写javascript

    使用Typescript来写javascript 前几天尝试使用haxejs来写javascript,以获得静态类型带来的益处.虽然成功了,但很快发现将它与angularjs一起使用,有一些不太顺畅的 ...

  2. CoffeeScript?TypeScript?还是JavaScript

    请注意本文只是我的偏见,我努力地理解借助CoffeeScript或TypeScript之类的编译器写JavaScript代码的理由.静态编译.强类型语言和框架,我有着这些流行的.丰富的背景.我的上一份 ...

  3. 像C++一样写JavaScript

    像C++一样写JavaScript C/C++/Java的include或import可以引用第3方文件和包. 这个功能在Html/Js里没有默认的实现. 假设我们有这样一个HTML文件index.h ...

  4. 代码规范(RL-TOC)用更合理的方式写 JavaScript

    代码可以改变世界 不规范代码可以毁掉世界 只有先学会写规范的代码,才可以走的更远 编程语言之间有很多编程规范都是通用: 命名 不要用语言不明的缩写,不用担心名字过长,名字一定要让别人知道确切的意思; ...

  5. 如何写javascript代码隐藏和显示这个div

    如何写javascript代码隐藏和显示这个div 浏览次数:82次悬赏分:10 | 解决时间:2011-4-21 14:41 | 提问者:hade_girl <div id="div ...

  6. 【blade04】用面向对象的方法写javascript坦克大战

    前言 javascript与程序的语言比如C#或者java不一样,他并没有“类”的概念,虽然最新的ECMAScript提出了Class的概念,我们却没有怎么用 就单以C#与Java来说,要到真正理解面 ...

  7. Asp.Net_ 服务端向客户端写JavaScript脚本

    在Asp.net 服务端处理脚本,一般都用 ClientScriptManager ,即web窗体服务端的this.ClientScript.该对象比较常用的方法: 1.RegisterArrayDe ...

  8. 用C#在Visual Studio写Javascript单元测试(Firefox内核)

    引用nuget包: 注意:Geckofx45 nuget包必须是最后引用,否则初始化会出错 编写JsRunner using Gecko; using System; using System.Col ...

  9. 用C#在Visual Studio写Javascript单元测试

    1.在vs创建一个标准的单元测试工程 2.引用nuget包:Edge.js 我是用的是6.11.2版本 3.编写JsRunner类 using EdgeJs; using System; using ...

随机推荐

  1. HW4.14

    public class Solution { public static void main(String[] args) { int count = 0; char asciiChar; for( ...

  2. 神经网络中误差反向传播(back propagation)算法的工作原理

    注意:版权所有,转载需注明出处. 神经网络,从大学时候就知道,后面上课的时候老师也讲过,但是感觉从来没有真正掌握,总是似是而非,比较模糊,好像懂,其实并不懂. 在开始推导之前,需要先做一些准备工作,推 ...

  3. 完美转换MySQL的字符集 Mysql 数据的导入导出,Mysql 4.1导入到4.0

    MySQL从4.1版本开始才提出字符集的概念,所以对于MySQL4.0及其以下的版本,他们的字符集都是Latin1的,所以有时候需要对mysql的字符集进行一下转换,MySQL版本的升级.降级,特别是 ...

  4. 问题-[Delphi]断点后怎么设置条件

    1.设置一个断点(这时某行代码有个红点).2.在红点上右击->"Breakpoint properties..."->"Condition:"-&g ...

  5. Shell简介:什么是Shell,Shell命令的两种执行方式

    Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...

  6. HTML5 UTF-8 中文乱码

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. java读取properties

    Java读取properties文件的方法比较多,网上我最多的文章是“Java读取properties文件的六种方法”,我看了好多的文章,在读到“博客之星-熔岩”的“Java读取properties文 ...

  8. CentOS Nginx+jdk+tomcat 环境搭建

    一.jdk安装 jdk下载地址:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloa ...

  9. Linux学习笔记总结--云服务器挂载磁盘

    1.通过 "fdisk -l" 命令查看 若执行fdisk -l命令,发现没有 /dev/xvdb 表明云服务无数据盘 2. 对数据盘进行分区 执行"fdisk  /de ...

  10. AWVS介绍

    使用AWVS对域名进行全局分析,深入探索: 首先,介绍一下AWVS这个工具. Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的网络漏洞扫描工具,它通过网 ...