Javascript Nedir?
Tags: javascript
Published: 2024-01-15 14:51:32

JavaScript, başlangıçta web sayfalarının öğeleriyle etkileşim kurmak için tasarlanmış bir programlama dilidir. Web tarayıcılarında JavaScript üç ana bölümden oluşur:

ECMAScript çekirdek işlevselliği sağlar.
Belge Nesne Modeli (DOM), web sayfalarındaki öğelerle etkileşim için arayüzler sağlar
Tarayıcı Nesne Modeli (BOM), web tarayıcısı ile etkileşim için tarayıcı API'sini sağlar.

JavaScript, bir web sayfasına etkileşim eklemenizi sağlar. Genellikle, formları doğrulamak, etkileşimli haritalar oluşturmak ve animasyonlu grafikler görüntülemek gibi bir web sayfasının işlevselliğini geliştirmek için HTML ve CSS ile JavaScript kullanırsınız.

Bir web sayfası yüklendiğinde, yani HTML ve CSS indirildikten sonra, web tarayıcısındaki JavaScript motoru JavaScript kodunu çalıştırır. JavaScript kodu daha sonra kullanıcı arayüzünü dinamik olarak güncellemek için HTML ve CSS'yi değiştirir.

JavaScript motoru, JavaScript kodunu yorumlamak ve yürütmekten sorumlu web tarayıcılarının bir bileşenidir. Kodu analiz etmek için bir ayrıştırıcı, makine koduna dönüştürmek için bir derleyici ve derlenmiş kodu çalıştırmak için bir yorumlayıcı içerir.

Önemli JavaScript motorları arasında Chrome'da V8, Firefox'ta SpiderMonkey ve Safari'de JavaScriptCore bulunmaktadır.

Başlangıçta, JavaScript motorları yorumlayıcılar olarak uygulanmıştır. Ancak, modern JavaScript motorları genellikle JavaScript kodunu gelişmiş performans için bayt koduna derleyen tam zamanında derleyiciler olarak uygulanmaktadır.

## İstemci Tarafı ve Sunucu Tarafı JavaScript

JavaScript bir web sayfasında kullanıldığında, web tarayıcılarında yürütülür ve istemci tarafı dili olarak hizmet verir.

JavaScript hem web tarayıcılarında hem de sunucularda çalışabilir. Popüler bir JavaScript sunucu tarafı ortamı Node.js'dir. İstemci taraflı JavaScript'in aksine, sunucu taraflı JavaScript sunucuda çalışır ve veritabanlarına, dosya sistemlerine vb. erişmenizi sağlar.

## JavaScript Tarihi

JavaScript 1995 yılında bir Netscape geliştiricisi olan Brendan Eich tarafından geliştirilmiştir. Başlangıçta Mocha olarak adlandırılan JavaScript'in adı daha sonra LiveScript olarak değiştirildi.

Netscape, Java'nın popülaritesinden yararlanmak için LiveScript'i JavaScript olarak yeniden markalaştırmaya karar verdi. Bu karar, Netscape Navigator 2 web tarayıcısının piyasaya sürülmesinden kısa bir süre önce alındı ve JavaScript sürüm 1.0'ın piyasaya sürülmesine yol açtı.

Netscape, JavaScript 1.1'i Netscape Navigator 3'te kullanıma sundu. Bu arada Microsoft, Netscape'e rakip olarak Internet Explorer 3 (IE 3) adlı web tarayıcısını tanıttı. Ancak IE, JScript adı verilen kendi JavaScript uygulamasına sahipti. Microsoft, Netscape ile olası lisans çatışmalarından kaçınmak için JScript adını kullandı.

Dolayısıyla, JavaScript'in iki farklı sürümü piyasadaydı:

- Netscape Navigator'da JavaScript
- Internet Explorer'da JScript

O dönemde JavaScript'in standartlaştırılmış sözdizimi ve özellikleri yoktu ve bu da topluluğun dilin standartlaştırılmasını savunmasına yol açtı.

1997 yılında JavaScript 1.1, Avrupa Bilgisayar Üreticileri Birliği'ne (ECMA) bir öneri olarak sunulmuştur. Teknik Komite #39'a (TC39) dili standartlaştırma ve genel amaçlı, platformlar arası ve satıcıdan bağımsız bir komut dosyası diline dönüştürme görevi verildi.

TC39, ECMAScript (genellikle Ek-ma-script olarak telaffuz edilir) adı verilen yeni bir komut dosyası dilini tanımlamak için bir standart oluşturan ECMA-262'yi ortaya çıkardı.

Bunu takiben, Uluslararası Standardizasyon Örgütü ve Uluslararası Elektroteknik Komisyonları (ISO/IEC) ECMAScript'i (ISO/IEC-16262) kabul etti.

## JavaScript'e genel bakış

> Aşağıdaki bölümün JavaScript koduna sağlam bir giriş sunduğunu unutmayın. Henüz aşina değilseniz, bu tamamen sorun değil. Gelecek eğitimde öğrenme fırsatınız olacak.

JavaScript'te bir değişken tanımlamak için `var` anahtar sözcüğünü kullanırsınız. Örneğin:

```
var x = 10;
var y = 20;
```

ES6, let anahtar sözcüğü ile değişken bildirmek için yeni bir yol ekledi:

```
let x = 10;
let y = 20;
```

var ve let arasında farklar vardır. Ve değişkenleri bildirmek için let anahtar sözcüğünü kullanmak iyi bir uygulamadır.

Bir fonksiyon bildirmek için function anahtar sözcüğünü kullanırsınız. Aşağıdaki örnek, iki argümanın toplamını hesaplayan bir fonksiyon tanımlar:

```
function add( a, b ) {
   return a + b;
}
```

`add()` fonksiyonunu çağırmak için aşağıdaki syntax'i kullanırsınız:

```
let result = add(x, y);
```

Sonucu web tarayıcısının konsol penceresine veya terminaline (node.js durumunda) günlüğe kaydetmek için `console.log()` işlevini kullanırsınız:

```
console.log(result);
```

Şimdi, çıktıda `30` değerini görmelisiniz.

JavaScript size `if-else` ve `switch` deyimleri gibi koşul deyimleri sağlar. Örneğin:

```
let a = 20, 
    b = 30;

function divide(a, b) {
    if(b == 0) {
       throw 'Division by zero';
    }
    return a / b;
}
```

`divide()` fonksiyonunda, de-numerator'ın (b) sıfır olup olmadığını kontrol ederiz. Eğer evet ise, bir istisna atarız. Aksi takdirde, a / b sonucunu döndürürüz.

Bir dizi bildirmek için aşağıdaki sözdizimini kullanırsınız:

```
let items = [];
```

Başlangıç elemanlarını içeren bir dizi bildirmek için, bu elemanları köşeli parantez içinde belirtirsiniz:

```
let items = [1, 2, 3];
```

items dizisindeki `item` sayısına `length` özelliği aracılığıyla erişebilirsiniz:

```
console.log(items.length); // 3
```

items array öğeleri üzerinde loop için for döngüsü ifadesini aşağıdaki gibi kullanırsınız:

```
for(let i = 0; i < items.length; i++) {
    console.log(items[i]);
}
```

Alternatif olarak ES6'daki **for...of** döngüsünü kullanabilirsiniz:

```
for(let item of items) {
    console.log(item);
}
```

JavaScript, gelecek eğitimlerde keşfedeceğiniz zengin özelliklere sahip, gelişen bir dildir.

Bu eğitimde JavaScript'in ne olduğunu öğrendiniz ve JavaScript diline genel bir bakış kazandınız.

[Github JS Eğitimleri](https://github.com/haktantekin/javascript-tutorial/tree/main)

[Linkedin](https://www.linkedin.com/in/haktantekin/)

[Kaynak](https://www.javascripttutorial.net/javascript-code-editors/)