coffeeScript 語法總結


CoffeeScript

---->安裝node.js

---->安裝coffeeScript

  語句:

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

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

  變量:

    和js不同,CoffeeScript的變量不需要定義,默認所有變量都是局部變量。

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

     在瀏覽器中用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()

 

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM