Skip to content

Commit 98f7862

Browse files
authored
Merge pull request #42 from akseyh/master
function express ve arrow func ayrıldı ve düzenlendi.
2 parents ed58560 + 225ad31 commit 98f7862

File tree

5 files changed

+113
-113
lines changed

5 files changed

+113
-113
lines changed

1-js/02-first-steps/15-function-expressions-arrows/article.md renamed to 1-js/02-first-steps/15-function-expressions/article.md

Lines changed: 9 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Fonksiyon ifadeleri ve oklar.
1+
# Fonksiyon ifadeleri.
22

33
JavaScript'te fonksiyonlar "büyülü dil yapısı" değil sadece özel bir tip değerdir.
44
[cut]
@@ -122,8 +122,8 @@ Fonksiyon `soru` sormalı, bu sorunun cevabına göre `evet()` veya `hayir()` fo
122122
```js run
123123
*!*
124124
function sor(soru, evet, hayir) {
125-
if (confirm(soru)) yes()
126-
else no();
125+
if (confirm(soru)) evet()
126+
else hayir();
127127
}
128128
*/!*
129129

@@ -142,7 +142,7 @@ Daha kısa yolunu yazmadan önce söylemek gerekir ki bu tür fonksiyonlar olduk
142142

143143
**`sor` fonksiyonunun argümanları *callbacks* veya *geri çağrım fonksiyonları* olarak adlandırılırlar.
144144

145-
Fikir fonksiyonu bizim baştan paslayıp ana fonksiyon içerieinde daha sonra duruma göre çağırılmasından kaynaklanmaktadır. Örneğe bakarsanız `tamamGoster` "evet" cevabı için *geri çağrım fonksiyonu*'dur.
145+
Fikir fonksiyonu bizim baştan paslayıp ana fonksiyon içerisinde daha sonra duruma göre çağırılmasından kaynaklanmaktadır. Örneğe bakarsanız `tamamGoster` "evet" cevabı için *geri çağrım fonksiyonu*'dur.
146146

147147
Fonksiyon İfadesi kullanarak aynı fonksiyonu daha kısa bir şekilde yazmak mümkün:
148148

@@ -153,7 +153,7 @@ function sor(soru, evet, hayir) {
153153
}
154154

155155
*!*
156-
ask(
156+
sor(
157157
"Kabul Ediyormusun?",
158158
function() { alert("Kabul ettin"); },
159159
function() { alert("Çalışmayı durdurdun."); }
@@ -174,9 +174,9 @@ Değişkenler arasında paylaşılabilir. İstendiği zaman çalıştırılabili
174174
```
175175

176176

177-
## Fonksiyon ifadesi ile Fonksiyon tanımının karışalaştırılması
177+
## Fonksiyon ifadesi ile Fonksiyon tanımının karşılaştırılması
178178

179-
Eğer Fonksiyon ifades ile fonksiyon tanımı arasındaki önemli farkları açıklamak gerekirse;
179+
Eğer Fonksiyon ifadesi ile fonksiyon tanımı arasındaki önemli farkları açıklamak gerekirse;
180180

181181
Yazım: Kodda neyin ne olduğunu görme.
182182

@@ -204,7 +204,7 @@ Daha ince bir değişiklik ise fonksiyonun JavaScript motorunda ne zaman yaratı
204204

205205
**Fonksiyon ifadesi kod çalışırken fonksiyona geldikten sonra kullılır**
206206

207-
Çalışma atamanın sağ tarafaını geçince `let sum = function...`, bu noktadan sonra fonksiyon artık yaratıldı. Bundan böyle çağırılabilir veya başka bir değişkene atanabilir.
207+
Çalışma atamanın sağ tarafına geçince `let sum = function...`, bu noktadan sonra fonksiyon artık yaratıldı. Bundan böyle çağırılabilir veya başka bir değişkene atanabilir.
208208

209209
Fonksiyon tanımlama ise farklıdır.
210210

@@ -223,7 +223,7 @@ Sonuç olarak, fonksiyon tanımı ile bu tanımdan önce çağırılabilir.
223223
selamVer("Ahmet"); // Merhaba Ahmet
224224
*/!*
225225
226-
function sayHi(isim) {
226+
function selamVer(isim) {
227227
alert( `Merhaba, ${isim}` );
228228
}
229229
```
@@ -362,106 +362,6 @@ Ayrıca fonksiyon içerisinde `function f(...){}` ile araştırmak `let f= funct
362362
Fakat eğer Fonksiyon Tanımı işimize yaramaz ise(yukarıda örnğin Fonksiyon ifadesini kullandık), bu durumda Fonksiyon İfadesi yöntemi kullanılmalıdır.
363363
```
364364
365-
366-
## Ok Fonksiyonları [#arrow-functions]
367-
368-
Fonksiyonları yaratmak için daha kısa bir yöntem daha vardır, bu Fonksiyon İfadesinden daha iyi denilebilir. Bunlara "Ok Fonksiyonları" denir. Çünkü "ok" gibi görünürler.
369-
370-
```js
371-
let func = (arg1, arg2, ...argN) => ifade
372-
```
373-
374-
Yukarıda yazılan kod `func` adında `arg1..argN`'e kadar argüman alan ve sonunda `ifade`yi çalıştıran bir fonksiyon bulunmaktadır.
375-
376-
Diğer bir deyişle, aşağıdaki ile neredeyse aynı kod yazılmıştır.
377-
378-
```js
379-
let func = function(arg1, arg2, ...argN) {
380-
return ifade;
381-
}
382-
```
383-
... Fakat `ok` ile yazılan daha özlüdür.
384-
385-
Örneğin:
386-
```js run
387-
let topla = (a, b) => a + b;
388-
389-
/* ok fonksiyonu aşağıdaki fonksiyon ifadesinin daha özlü yazılmış halidir.:
390-
391-
let topla = function(a, b) {
392-
return a + b;
393-
};
394-
*/
395-
396-
alert( topla(1, 2) ); // 3
397-
398-
```
399-
Eğer tek argüman olsaydı, bu durumda parantez de çıkarılabilirdi, böylece daha da kolay olurdu:
400-
401-
402-
```js run
403-
// aynısı
404-
// let ikiKati = function(n) { return n * 2 }
405-
*!*
406-
let ikiKati = n => n * 2;
407-
*/!*
408-
409-
alert( ikiKati(3) ); // 6
410-
```
411-
412-
Eğer hiç bir değer yoksa parantez eklenmelidir. ( Bir değer olduğunda yukarıdaki gibi kullanılabilir.)
413-
414-
415-
```js run
416-
let selamVer = () => alert("Merhaba!");
417-
418-
selamVer();
419-
```
420-
Ok Fonksiyonları Fonksiyon ifadeleri ile aynı şekilde kullanılabilirler.
421-
422-
Örneğin aşağıda `merhaba()` fonksiyonunun Ok Fonksiyonu şekliyle görebilirsiniz.
423-
424-
```js run
425-
let yas = prompt("Kaç Yaşındasın?", 18);
426-
427-
let merhaba = (yas < 18) ?
428-
() => alert('Merhaba') :
429-
() => alert("Merhabalar!");
430-
431-
merhaba();
432-
```
433-
434-
Ok fonksiyonları ilk yazılmaya başlandığında göze yabancı gelebilir. Fakat zamanla göz bu yapıya alışacak ve hemen ayak uyduracaktır.
435-
436-
Uzunca yazmak istemiyorsanız, kolayca tek kelimelik fonksiyonlar yazabilirsiniz.
437-
438-
439-
```smart header="Çok satırlı Ok Fonksiyonları"
440-
441-
Yukarıdaki örnekte argüman `=>` solundan alınır ve sağında çalıştırılır.
442-
443-
Bazen bundan daha karmaşık yapılara ihtiyaç duyabilirsiniz. Bunun için sağ tarafa başlarken `{` parantez ile başlar ve bittiğinde de `}` ile fonksiyonu kapatırsanız içerisine fonksiyonun gövdesini yazabilirsiniz.
444-
445-
Bunun gibi:
446-
447-
```js run
448-
let toplam = (a, b) => { // birden fazla satır yazmak için `{` kullanılmalıdı.
449-
let sonuc = a + b;
450-
*!*
451-
return sonuc; // eğer süslü parantez kullanıyorsanız değer döndürmek için return yazmanız gerekmektedir.
452-
*/!*
453-
};
454-
455-
alert( toplam(1, 2) ); // 3
456-
```
457-
458-
```smart header="Dahası var"
459-
Şu anda sadece Ok Fonksiyonlarına giriş yaptık. Fakat elbette tamamı bu değil! Ok fonksiyonun başka ilginç özellikleri de mevcut. Bunlara <info:arrow-functions> bölümünde değinilecektir.
460-
461-
Şimdilik tek satırlı fiillerde ve geri çağrım fonksiyonlarında kullabilirsiniz.
462-
```
463-
464-
465365
## Özet
466366
467367
- Fonksiyonlar değerdir. Atanabilir, kopyalanabilir ve kodun herhangi bir yerinde tanımlanabilirler.
@@ -473,7 +373,3 @@ alert( toplam(1, 2) ); // 3
473373
474374
Fonksiyon ifadesi sadece Fonksiyon Tanımı yetersiz kalırsa kullanılmalıdır. Bu örnek daha önce yukarıda yapılmıştı.
475375
476-
Ok Fonksiyonları tek satır için kullanışlıdır. İki türlüsü vardır:
477-
478-
1. Süslü parantez olmadan: Fonksiyon sağ taraftaki ifadeyi çalıştırır ve sonucu dönderir. Tek satırda biten işlemler için kullanılmalıdır.
479-
2. Süslü parantez ile `(...args) => { gövde }` -- süslü parantez bizim birden fazla satır yazmamızı sağlar. Fakat gövde içerisinde `return` kullanılması gerekmektedir.

1-js/02-first-steps/15-function-expressions-arrows/1-rewrite-arrow/solution.md renamed to 1-js/02-first-steps/16-arrow-functions-basics/1-rewrite-arrow/solution.md

File renamed without changes.

1-js/02-first-steps/15-function-expressions-arrows/1-rewrite-arrow/task.md renamed to 1-js/02-first-steps/16-arrow-functions-basics/1-rewrite-arrow/task.md

File renamed without changes.
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
## Ok Fonksiyonları [#arrow-functions]
2+
3+
Fonksiyonları yaratmak için daha kısa bir yöntem daha vardır, bu Fonksiyon İfadesinden daha iyi denilebilir. Bunlara "Ok Fonksiyonları" denir. Çünkü "ok" gibi görünürler.
4+
5+
```js
6+
let func = (arg1, arg2, ...argN) => ifade
7+
```
8+
9+
Yukarıda yazılan kod `func` adında `arg1..argN`'e kadar argüman alan ve sonunda `ifade`yi çalıştıran bir fonksiyon bulunmaktadır.
10+
11+
Diğer bir deyişle, aşağıdaki ile neredeyse aynı kod yazılmıştır.
12+
13+
```js
14+
let func = function(arg1, arg2, ...argN) {
15+
return ifade;
16+
}
17+
```
18+
... Fakat `ok` ile yazılan daha özlüdür.
19+
20+
Örneğin:
21+
```js run
22+
let topla = (a, b) => a + b;
23+
24+
/* ok fonksiyonu aşağıdaki fonksiyon ifadesinin daha özlü yazılmış halidir.:
25+
26+
let topla = function(a, b) {
27+
return a + b;
28+
};
29+
*/
30+
31+
alert( topla(1, 2) ); // 3
32+
33+
```
34+
Eğer tek argüman olsaydı, bu durumda parantez de çıkarılabilirdi, böylece daha da kolay olurdu:
35+
36+
37+
```js run
38+
// aynısı
39+
// let ikiKati = function(n) { return n * 2 }
40+
*!*
41+
let ikiKati = n => n * 2;
42+
*/!*
43+
44+
alert( ikiKati(3) ); // 6
45+
```
46+
47+
Eğer hiç bir değer yoksa parantez eklenmelidir. ( Bir değer olduğunda yukarıdaki gibi kullanılabilir.)
48+
49+
50+
```js run
51+
let selamVer = () => alert("Merhaba!");
52+
53+
selamVer();
54+
```
55+
Ok Fonksiyonları Fonksiyon ifadeleri ile aynı şekilde kullanılabilirler.
56+
57+
Örneğin aşağıda `merhaba()` fonksiyonunun Ok Fonksiyonu şekliyle görebilirsiniz.
58+
59+
```js run
60+
let yas = prompt("Kaç Yaşındasın?", 18);
61+
62+
let merhaba = (yas < 18) ?
63+
() => alert('Merhaba') :
64+
() => alert("Merhabalar!");
65+
66+
merhaba();
67+
```
68+
69+
Ok fonksiyonları ilk yazılmaya başlandığında göze yabancı gelebilir. Fakat zamanla göz bu yapıya alışacak ve hemen ayak uyduracaktır.
70+
71+
Uzunca yazmak istemiyorsanız, kolayca tek kelimelik fonksiyonlar yazabilirsiniz.
72+
73+
74+
```smart header="Çok satırlı Ok Fonksiyonları"
75+
76+
Yukarıdaki örnekte argüman `=>` solundan alınır ve sağında çalıştırılır.
77+
78+
Bazen bundan daha karmaşık yapılara ihtiyaç duyabilirsiniz. Bunun için sağ tarafa başlarken `{` parantez ile başlar ve bittiğinde de `}` ile fonksiyonu kapatırsanız içerisine fonksiyonun gövdesini yazabilirsiniz.
79+
80+
Bunun gibi:
81+
82+
```js run
83+
let toplam = (a, b) => { // birden fazla satır yazmak için `{` kullanılmalıdır.
84+
let sonuc = a + b;
85+
*!*
86+
return sonuc; // eğer süslü parantez kullanıyorsanız değer döndürmek için return yazmanız gerekmektedir.
87+
*/!*
88+
};
89+
90+
alert( toplam(1, 2) ); // 3
91+
```
92+
93+
```smart header="Dahası var"
94+
Şu anda sadece Ok Fonksiyonlarına giriş yaptık. Fakat elbette tamamı bu değil! Ok fonksiyonun başka ilginç özellikleri de mevcut. Bunlara <info:arrow-functions> bölümünde değinilecektir.
95+
96+
Şimdilik tek satırlı fiillerde ve geri çağrım fonksiyonlarında kullabilirsiniz.
97+
```
98+
99+
## Özet
100+
101+
Ok Fonksiyonları tek satır için kullanışlıdır. İki türlüsü vardır:
102+
103+
1. Süslü parantez olmadan: Fonksiyon sağ taraftaki ifadeyi çalıştırır ve sonucu dönderir. Tek satırda biten işlemler için kullanılmalıdır.
104+
2. Süslü parantez ile `(...args) => { gövde }` -- süslü parantez bizim birden fazla satır yazmamızı sağlar. Fakat gövde içerisinde `return` kullanılması gerekmektedir.
File renamed without changes.

0 commit comments

Comments
 (0)