coffeeScript 語法總結

CoffeeScriptnode

---->安裝node.js數組

---->安裝coffeeScript瀏覽器

  語句:less

注意:沒有分號,語句由新的一行結束;多條語句寫到同一行時須要分號表示一條語句的結束(不經常使用);函數

        經過在行尾加上\表示語句延續到下一行;測試

  變量:this

    和js不一樣,CoffeeScript的變量不須要定義,默認全部變量都是局部變量。spa

    聲明全局變量:global.myGlobalVariable="I am calamus!"code

     在瀏覽器中用window對象代替:window.myGlobalVariable="I am calamus!"對象

  註釋:

    單行註釋(編譯後不存在):以#開頭,行中間的# 以後的內容也是註釋內容。

      #註釋內容;

    多行註釋(不多用,編譯爲js後爲/**/):以###開頭和結尾的註釋塊

            ###

            註釋塊內容

            ###

  函數調用

     函數調用的優先級:參數由內向外分配給函數,即最近原則。 

console.log("Hello,Calamus!")
console.log "Hello,Calamus!"
//有參數則小括號能夠省略,但有時須要實用小括號消除歧義
Math.pow 2,3
//調用沒有參數的函數,必須實用括號
Date.now()

  控制結構:不實用大括號,使用縮進控制代碼執行

    if、else 和 else if語句

calamus=16;
if calamus>5
    console.log "Calamus is greater than 5"
    if calamus>15
         console.log "Calamus is greater than 5"
     console.log "Over" 

    單行形式:

console.log "Success!" if true==true

    unless語句(測試條件爲等價假值時執行分支語句塊):

day="Monday"
unless day[0]=="S"
    console.log "Today is a weekday!"
//編譯後的js代碼爲:
var day;
day="Monday";
if(day[0]!=="S"){
    console.log "Today is a weekday!"
}

  switch語句:

//編譯爲js會添加break
switch things
    when "ice"
        console.log "white"
    when "grass"  then  console.log "green"  //也能夠實用then縮短語句到一行
    else 
        console.log "gray"

 

  比較運算符

CoffeeScript和JavaScript比較運算符轉換
CoffeeScript JavaScript
is,== ===
isnt !==
not !
and &&
or ||
true,yes,on true
false,no,off false
@,this this
of in
in  

  數組:

languages =["english","chinese","french"]
languages =[  "english",
                    "chinese",
                    "french"]  
//不實用逗號也能夠
 languages =[  "english"
                    "chinese"
                    "french"]      

  數列:

num=[0..9]            //編譯爲num=[0,1,2,3,4,5,6,7,8,9];
num=[0...9]          //編譯爲num=[0,1,2,3,4,5,6,7,8];三個點不包含尾邊界

  簡單對象:

author={name:"Calamus",age:21}  //能夠省略逗號,大括號(縮進)
author.name
author["age"]
author.favoriteColor="black"
//對象的遍歷
for k,v of author
    consoloe.log "My"+k+"is"+v

  循環:

//遍歷數組每一個元素很方便
animals=["dog","cat","brid"]
for animal in animals
    console.log animal

  函數:

匿名函數:

//參數爲name的匿名函數,也能夠有多個參數的
(name) ->
    return "Hello,#{name}!"
//編譯後
(function(name){
    return "Hello,"+name+"!";    
})
//函數的調用
sayHello=(name) ->
    return "Hello,#{name}!"
sayHello "Calamus"

命名函數:大多數狀況下不支持命名函數,主要緣由是IE對命名函數的支持很是弱,但能夠實用綁定帶變量的方式給函數命名

  函數的返回值

//若是函數沒有顯式的返回值,會把最後一句話看成函數的返回值
about = (phrase) ->
    "{phrase.toUpperCase()}!!!"
    //return  肯定沒有返回值時加return
    //null     隱式返回
//編譯後的js
var shout;
shout = function (phrase){
    return ""+(phrase.toUpperCase())+"!!!";
}

  類:

//聲明一個類
class rabbit
//建立類的實例
rabbit=new rabbit()
rabbit.color="gray"
//給類綁定方法,number爲參數
class rabbit
    jump:(number)->
        console.log "GrayRabbit"
rabbit.jump()

  構造函數:

//只需在前面加constructor
class rabbit
    constructor:(num,type="diesel") ->
        @type=type;
        @number=number
        @load=0
        @capacity=number * 100
    describe : ->
        //其餘內容

  類的繼承:

//實用extends代表繼承關係
class animal 
    behavior : ->
        console.log "jump"
class rabbit extends animal
//實例
myRabbit = new rabbit()
myRabbit.behavior()
相關文章
相關標籤/搜索