ES6 ve ES7 Örnekler

Block Scoped Declaration

const a = 1
let b = 'foo'

// Not allowed!
// a = 2

// Ok!
b = 'bar'

if (true) {
  const a = 3
}

const ve let ifadelerine bakalım. Normal JavaScript'te bu ifadeler yerine değişkenleri tanımlamak için var kullanılır. Aralarındaki temel fark const ve let ifadeleri yalnızca bulundukları blok için geçerlidir.

const bildiğimiz "CONSTANT" kelimesinin kısaltması, sabit yani tanımlandığı blokta kendisine yalnızca bir kere atama yapılabilir

let ifadesi değişkenler için uygundur. Yukarıdaki örnekte üst blokta tanımlanmış const "a"ifadesine bir kere atama yapılmış daha sonra başka bir değişiklik yapılınca buna izin verilmemiş. ama farklı bir blokta tekrar atama yapılabilmiştir.

Arrow Function ( => )

Arrow (=>) ya da fat arrow function (==>) denilen bu fonksiyon başta kafa karıştırıcı olabilir. Normal bir fonksiyondan temel anlamda bir kaç tane farkı vardır.

Birincisi; ES5 ile yazılmış bir JavaScript kodunda, bir fonksiyonu bind etmek için kullandığımız, this kodu eğer biz arrow function kullanıyorsak gerekli değildir. Çünkü arrow function için fonksiyonun kendi bloğu ya da dış blok aynı kapsamdadır.Bir örnekle bakalım;

ES5 ile yazılan örnekte selamver fonksiyonu kendi üst bloğundaki msj 'a ulaşmak için bind edilmesi gerekirken; ES6 ile yazılan halinde, arrow function kullanılmış ve bind edilmesine gerek kalmadan msj değişkenine ulaşılmıştır

İkincisi; Eğer fonksiyonunuz bir parametre alıyorsa, süslü parantez {} ve return kullanmanıza gerek yok. Kullanırsanız da bir şey değişmez. Örneğin;

[[http://jsbin.com/docuhuy/2/embed?live](http://jsbin.com/docuhuy/2/embed?live">JS](http://jsbin.com/docuhuy/2/embed?live]%28http://jsbin.com/docuhuy/2/embed?live">JS)\)

Modüller

Default Parametre

Class

ES5 ' de, class yaratmak için sadece fonksiyon kullanabiliriz veMyFunction.prototype ile method atıyabiliriz. ES6, class için bize daha kolay bir sentaks veriyor.

ES6 bize javascript ile nesneye yönelik programlama imkânı veriyor. inheritance yapmak, static ve instance fonksiyonlar oluşturmak mümkün. Bide bir tane özel bir fonksiyonumuz var; constructor . constructor, bir class yaratıldığında otomatik olarak çağrılır. Ayrıca static kodu ile de static class fonksiyonlar tanımlayabiliriz. inheritance için de kullandığımız keyword, extends

Array Spread

Static Variables Class

Object Spread

ES6 daki Array Spread gibi, Object Spread ... objenin elemanlarını dağıtır. ES7 ile gelen bir özelliktir.

{...originalObj} bu bizim ilk objemiz olsun. Biz bunu Object Spread ile kopyasını alıp, istediğimiz bir özelliğini değiştirerek yeni objemizi yaratalım.

Async ve Await

Asenkron iş planına sahip uygulamamızı hem daha mantıklı hem de daha okunur kılan async , ES7 ile gelmiştir. await de onunla beraber kullanılır. async fonksiyonu, asenkron operasyon tamamlanana veya hata alana kadar bir sonraki kod bloğunun çalışmasını engeller.

ES6 Generator

Aşamalı, iterative biçimde ilerlemesi gereken bir fonksiyona ihtiyaç duyuyorsanız ES6 generator ler tam size göre.

Tüm generator işlemlerini sırayla yapılmasını istiyorsanız

Last updated

Was this helpful?