11. MOT CLÉ
if / unless
is / isnt
i vr i vr
f a1 s a2
cnoelgvr
osl.o a1
cnoelgvr uls vr in vr
osl.o a1 nes a1 st a2
i (a1==vr){
f vr = a2
cnoelgvr)
osl.o(a1;
}
12. CONDITIONS MULTIPLES
Les "classiques" && et || sont remplacés par 'and' et 'or'
i aadbo c
f n r
i ( & b| c
f a & | )
i 20<a<30
f 0 0
i (0 <a& a<30
f 20 & 0)
13. CONDITIONS TERNAIRES
i vr i vr te cnoelg""es cnoelg"=
f a1 s a2 hn osl.o = le osl.o !"
vr =i vr i vr te 3es 4
a3 f a1 s a2 hn le
vrvr;
a a3
i (a1==vr){
f vr = a2
cnoelg"";
osl.o(=)
}es {
le
cnoelg"=)
osl.o(!";
}
vr =vr ==vr ?3:4
a3 a1 = a2 ;
15. COLLECTION
Le mot clé in pour itérer sur les éléments d'une collection
froji cleto
o b n olcin
cnoelgoj
osl.o b
cnoelgojfroji cleto
osl.o b o b n olcin
vroj _,_e;
a b, i ln
fr(i=0 _e =cleto.egh _ <_e;_+){
o _ , ln olcinlnt; i ln i+
oj=cleto[i;
b olcin_]
cnoelgoj;
osl.o(b)
}
16. FILTRES
Le mot clé when pour mettre une condition à notre boucle
froji cleto we ojin aohrb
o b n olcin hn b st nteOj
cnoelg"bet #oj"
osl.o ojc: {b}
vroj _,_e;
a b, i ln
fr(i=0 _e =cleto.egh _ <_e;_+){
o _ , ln olcinlnt; i ln i+
oj=cleto[i;
b olcin_]
i (b !=aohrb){
f oj = nteOj
cnoelg"bet "+oj;
osl.o(ojc: b)
}
}
17. WHILE
i=0
wiei<1
hl 0
i+
+
i=0
utli> 1
ni = 0
i+
+
vri
a ;
i=0;
wie( <1){
hl i 0
i+
+;
}
i=0;
wie(( > 1) {
hl !i = 0)
i+
+;
}
20. FONCTIONS
sm=(olcin[)-
u cleto=] >
rs=0
e
rs+ ee free i cleto
e = lm o lm n olcin
rs
e
vrsm
a u;
sm=fnto(olcin {
u ucincleto)
vree,rs _,_e;
a lm e, i ln
i (olcin= nl){
f cleto = ul
cleto =[;
olcin ]
}
rs=0
e ;
fr(i=0 _e =cleto.egh _ <_e;_+){
o _ , ln olcinlnt; i ln i+
ee =cleto[i;
lm olcin_]
rs+ ee;
e = lm
}
rtr rs
eun e;
};
23. DÉFINIR UNE CLASSE
casBl
ls al
cntutr (x0 @=)-
osrco: @=, y0 >
mv:(x @)-
oe @, y >
vrBl;
a al
Bl =(ucin){
al fnto(
fnto Bl(,y {
ucin alx )
ti. =x! nl ?x:0
hsx = ul ;
ti. =y! nl ?y:0
hsy = ul ;
}
Bl.rttp.oe=fnto(,y {
alpooyemv ucinx )
ti. =x
hsx ;
ti. =y
hsy ;
};
rtr Bl;
eun al
}(;
))
24. HÉRITAGE
casOjc
ls bet
cntutr (x0 @=)-
osrco: @=, y0 >
mv:(x @)-
oe @, y >
casBl etnsOjc
ls al xed bet
cntutr (x @,@ais -
osrco: @, y rdu) >
spr@,@
ue x y
epoe -
xld: >
#d suf
o tf
bl =nwBl(
al e al)
bl.oe1,1
almv 0 0
bl.xld(
alepoe)
27. CONTEXT
Quand une fonction est appelée par un context différent
$"bl".lc -
(#al)cik >
@xld( #eru cr@rmlc pr"hs (eDMciu)
epoe) rer a epaé a ti" l O lqé
$ti)rmv( #o
(hs.eoe) k
$"bl".lc =
(#al)cik >
@xld(
epoe) #ok
$ti)rmv( #eru crti etlojc Bl
(hs.eoe) rer a hs s 'bet al
SOLUTION
A la mano :'(
_hs=@
ti
$"bl".lc -
(#al)cik >
_hsepoe)
ti.xld(
$ti)rmv(
(hs.eoe)
28. PAS DE MACROS :(
# DBG=ys
> EU e
# SA =(a1 vr)-
> WP vr, a2 >
#> tp=vr
m a1
#> vr =vr
a1 a2
#> vr =tp
a2 m
a=2
b=3
SA a b
WP ,
# i DBGi ys
> f EU s e
cnoelga b
osl.o ,
# es
> le
$"upt)hm ":#a,b #b"
(otu".tl a {} : {}
#Ae DBGi ys
vc EU s e #Ae DBGi n
vc EU s o
a=2 ; a=2 ;
b=3 ; b=3 ;
tp=a
m ; tp=a
m ;
a=b ; a=b ;
b=tpm; b=tpm;
cnoelga b;
osl.o(, ) $"upt)hm(a "+a+" b"+b;
(otu".tl": , : )
29. EQUIVALENT À COFFEESCRIPT
TypeScript (Microsoft)
Sweetjs (Mozilla)
Dart (Google)
LIENS UTILES
http://js2coffee.org/
http://coffeescript.org/
https://github.com/jashkenas/coffeescript
30. ANTHONY ESTEBE
“
DÉVELOPPEUR WEB FREELANCE
twitter: @antho1404
skype: antho1404
github: antho1404
site: http://anthonyestebe.com
”