summaryrefslogtreecommitdiffhomepage
path: root/sk-sk/coffeescript.html.markdown
blob: e716abedce357071c1a412ec0afa0b2d49e924cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
---
language: coffeescript
contributors:
  - ["Tenor Biel", "http://github.com/L8D"]
  - ["Xavier Yao", "http://github.com/xavieryao"]
translators:
  - ["Juraj Kostolanský", "http://www.kostolansky.sk"]
lang: sk-sk
filename: coffeescript.coffee
---

CoffeeScript je jazyk, ktorý sa kompiluje do ekvivalentného JavaScriptu,
neexistuje peňho interpretácia počas behu programu (runtime).
CoffeeScript sa snaží vytvárať čitateľný, pekne formátovaný a optimalizovaný
JavaScriptový kód pracujúci pod každým JavaScriptovým prostredím.

Pozri tiež [stránku CoffeeScript](http://coffeescript.org/), ktoré obsahuje kompletný tutoriál o CoffeeScripte.

```coffeescript
# CoffeeScript je jazyk hipsterov.
# Ide s trendom mnohých moderných jazykov.
# Komentáre sú podobné tým v Ruby a Pythone, používajú symbol #.

###
Blokové komentáre vyzerajú takto, prekladajú sa priamo do '/ * ... * /'
pre výsledný kód JavaScriptu.

Predtým, než budeš pokračovať, mal by si rozumieť sémantike JavaScriptu.
###

# Priradenia:
cislo = 42   #=> var cislo = 42;
opak  = true #=> var opak = true;

# Podmienky:
cislo = -42 if opak #=> if(opak) { cislo = -42; }

# Funkcie:
stvorec = (x) -> x * x #=> var stvorec = function(x) { return x * x; }

vypln = (nadoba, tekutina = "káva") ->
  "#{nadoba} sa napĺňa tekutinou #{tekutina}..."
#=>var vypln;
#
#vypln = function(nadoba, tekutina) {
#  if (tekutina == null) {
#    tekutina = "káva";
#  }
#  return nadoba + " sa napĺňa tekutinou " + tekutina + "...";
#};

# Rozsahy:
zoznam = [1..5] #=> var zoznam = [1, 2, 3, 4, 5];

# Objekty:
matika =
  zaklad:  Math.sqrt
  stvorec: square
  kocka:   (x) -> x * square x
#=> var matika = {
#  "zaklad": Math.sqrt,
#  "stvorec": square,
#  "kocka": function(x) { return x * square(x); }
#}

# Splat operátor:
zavod = (vitaz, bezci...) ->
  print vitaz, bezci
#=>zavod = function() {
#  var vitaz, bezci;
#  vitaz = arguments[0],
#  bezci = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
#  return print(vitaz, bezci);
#};

# Existencia:
alert "Vedel som to!" if elvis?
#=> if(typeof elvis !== "undefined" && elvis !== null)
# { alert("Vedel som to!"); }

# Pole:
kocky = (matika.kocka cislo for cislo in zoznam)
#=>kocky = (function() {
#	var _i, _len, _results;
#	_results = [];
# 	for (_i = 0, _len = zoznam.length; _i < _len; _i++) {
#		cislo = zoznam[_i];
#		_results.push(matika.kocka(cislo));
#	}
#	return _results;
#  })();

jedla = ['brokolica', 'špenát', 'čokoláda']
zjedz jedlo for jedlo in jedla when jedlo isnt 'čokoláda'
#=>jedla = ['brokolica', 'špenát', 'čokoláda'];
#
#for (_k = 0, _len2 = jedla.length; _k < _len2; _k++) {
#  jedlo = jedla[_k];
#  if (jedlo !== 'čokoláda') {
#    zjedz(jedlo);
#  }
#}
```

## Ďalšie zdroje

- [Smooth CoffeeScript](http://autotelicum.github.io/Smooth-CoffeeScript/)
- [CoffeeScript Ristretto](https://leanpub.com/coffeescript-ristretto/read)