JS ES12–3 Güzel Yenilik

Babel sayesinde ECMAScript 2021 özelliklerini bir süredir kullanıyoruz. Tabii ki yeni gelişmeler JS dünyasını güçlendirmeye devam ediyor. Burada ES12 nin tüm özelliklerinin yerine sadece hem daha okunaklı bir kod geliştirmek için hemde zaman kazandıracağını düşündüğüm 3 özellikten bahsedeceğim.
Hadi inceleyelim !
Mantıksal Atama Operatörü ( Logical Assignment Operator)
Mantıksal atama operatörü, mantıksal işlemleri (??, && veya || gibi) bir atama (örneğin =) ile birleştirir.
x || = y koşulunda eğer x doğruysa x yanlışsa y döndürür.
## En Eski Yöntem ##if(!x){ x = y}## Daha Güncel Yöntem ##x = x || y## ES12 ##x ||= y
x && = y koşulunda x doğruysa y, x yanlışsa x döndürür.
## En Eski Yöntem ##if(x){ x = y}## Daha Güncel Yöntem ##x = x && y## ES12 ##x && = y
x ?? = y koşulunda x null veya tanımsız ise y , x doğru ise x döndürür.
## En Eski Yöntem ##if(x){ x = y}## Daha Güncel Yöntem ##x = x ?? y## ES12 ##x ??= y
Başlangıçta alışmak biraz zor gibi görünebilir fakat çok işlevsel oldukları kesin.
2. Promise.any
İşlemlerden ilk olarak çözülen işleme alınır. Eğer tamamı reddedilirse catch çalışır. Red durumunda e.errors hataları Array olarak döndürür.
const error = new Promise((resolve, reject) => {
reject("Err");
});const slow = new Promise((resolve, reject) => {
setTimeout(resolve, 500, "Slow fetch");
});const fast = new Promise((resolve, reject) => {
setTimeout(resolve, 100, "Fast fetch");
});Promise.any([error, slow, fast ])
.then(value => { console.log(value) })
.catch( err => { console.log(err.errors) });
- Mantıksal olarak Promise.all() tersi şeklinde çalışır.
3. Numeric Separators ( _ )
Binlerle ifade edilen sayıları ayırmak için kullanıyoruz. Daha okunabilir ve bilgilendirici hale gelmiş oluyor. Örneğin;
## Eski Yazım ## const amount = 4750000;
const amount2= 456123451;## Yeni Yazım ## const amount = 4_750_000;
const amount2= 456_123_451;
Gördüğünüz gibi çok daha okunabilir bir hale gelmiş oldu. Diğer özelliklere ve detaylara Kaynaklardan ulaşabilirsiniz. Teşekkür ederim.
Herkese İyi Kodlamalar!
Tolga Karabulut
tolga.karabulut@medianova.com
Medianova CDN | Senior PHP Developer