> For the complete documentation index, see [llms.txt](https://hanuce.gitbook.io/javascript-egitimi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hanuce.gitbook.io/javascript-egitimi/fonksiyonlar-temel/ok-arrow-fonksiyonlar.md).

# Ok (Arrow) Fonksiyonlar

**Anonim fonksiyonlar** ok fonksiyon şeklinde daha veciz, okunaklı ve **ilkel** bir şekilde ifade edilebilirler. Örnek.

{% code lineNumbers="true" %}

```javascript
//anonim fonksiyon ifadesi
let uzunca = function () {
    return alert('Uzunca ifade edilmiş fonksiyon');
};

//ok fonksiyonlar ile ifade etme
let veciz = () => alert('Veciz ifade edilmiş fonksiyon');

uzunca();
veciz();
```

{% endcode %}

Ok fonksiyonlara parametre de gönderebilirsiniz. Tek parametre gönderirseniz parantez kullanımına gerek de olmaz. Örnek.

{% code lineNumbers="true" %}

```javascript
let kareAl = n => n**2;
let usAl = (a,n) => a**n;

alert( kareAl(15) );
alert( usAl(15,3) );
```

{% endcode %}

Bu örnekler tek satırlı ok fonksiyonlar için örnekti. Eğer çok satırlı yazmak gerekirse yine süslü parantezler (**`{}`**) içerisinde kodlarınızı yazmalı ve sonucu döndürmek için **`return`** kullanmalısınız. Örnek.

{% code lineNumbers="true" %}

```javascript
let hipotenusBul = (a,b) => {
    let c;
    c = (a*a + b*b); // kareleri topla
    c = Math.sqrt(c); // kareköküne eşitle
    return c;
};
alert( hipotenusBul(6,8) );
alert( hipotenusBul(5,12) );
```

{% endcode %}

veya daha veciz olarak:

{% code lineNumbers="true" %}

```javascript
let hipotenusBul = (a,b) => Math.sqrt(a*a + b*b);
alert( hipotenusBul(6,8) );
alert( hipotenusBul(5,12) );
```

{% endcode %}

Koşullu operatör ile bir örneğini deneyelim.

{% code lineNumbers="true" %}

```javascript
let tcNO = prompt("TC Numaranınızı Giriniz", 0);

let tcKontrol = (tcNO.length == 11) ?
    () => alert('TC No basamak sayısı DOĞRU!') :
    () => alert("TC No basamak sayısı YANLIŞ!!");

tcKontrol();
```

{% endcode %}
