Takip et

JavaScript’in Gizli 7 Özelliği: Performansınızı Artırmanın Yolları

JavaScript’in Gizli 7 Özelliği: Performansınızı Artırmanın Yolları

Merhaba, ben Fatih Soysal. Web geliştirme dünyasında, JavaScript olmazsa olmaz bir dil. Ancak, bu güçlü dilin birçok geliştirici tarafından göz ardı edilen gizli özellikleri var. Bu özellikler, kodunuzun performansını ciddi oranda etkileyebilir. Bu makalede, JavaScript’in performansınızı artıracak 7 gizli özelliğini inceleyeceğiz. Umarım bu bilgiler, projelerinizde daha verimli kod yazmanıza yardımcı olur.

1. Optional Chaining (?.)

Optional Chaining (?.), nesne özelliklerine erişirken null veya undefined değerlerle karşılaştığınızda oluşan hataları önlemenizi sağlar. Önceki yöntemlerde, her bir özelliğin varlığını kontrol etmek için uzun ve okunması zor ifadeler kullanmak gerekiyordu. Şimdi ise, obj?.prop?.method() gibi bir ifadeyle, objenin prop özelliğinin ve daha sonra bu özelliğin method fonksiyonunun varlığını kontrol edip, var ise çalıştırır; yok ise undefined döndürür. Bu, kodun okunabilirliğini artırırken aynı zamanda hata riskini azaltır.


// Optional Chaining kullanımı
const user = { address: { street: '123 Main St' } };
console.log(user?.address?.street); // '123 Main St'

const otherUser = { address: null };
console.log(otherUser?.address?.street); // undefined (hata vermez)

2. Nullish Coalescing Operator (??)

Nullish Coalescing Operator (??), değişkenlerin değerini kontrol ederken null veya undefined değerlerini varsayılan bir değerle değiştirmenize olanak tanır. Bu operatör, 0, false, veya boş bir string gibi değerleri varsayılan değer olarak değiştirmez. Sadece null ve undefined değerlerini değiştirir. Bu da kodun daha temiz ve okunaklı olmasını sağlar. Örneğin, let name = user?.name ?? 'Misafir'; ifadesi, user.name değeri null veya undefined ise ‘Misafir’ değerini atayacaktır.


// Nullish Coalescing Operator kullanımı
let name = null;
let displayName = name ?? 'Anonim'; // displayName = 'Anonim'

name = 0;
displayName = name ?? 'Anonim'; // displayName = 0 (0 null veya undefined olmadığı için)

3. BigInt

BigInt, JavaScript’in güvenilir bir şekilde çok büyük tam sayıları (64 bit’ten büyük) temsil etmesine olanak sağlayan yeni bir veri türüdür. Daha önce JavaScript’te büyük sayılarla çalışmak zor ve hassasiyet kaybına yol açabiliyordu. BigInt ile bu sorun artık ortadan kalkmış durumda. Bir sayının sonuna ‘n’ ekleyerek BigInt oluşturabilirsiniz (örneğin, 9007199254740991n).


// BigInt kullanımı
const bigNumber = 9007199254740991n;
console.log(bigNumber); // 9007199254740991n

4. for…of Döngüsü

for...of döngüsü, diziler, dizeler ve diğer yineleyici nesneler üzerinde yineleme yapmak için temiz ve okunaklı bir yöntem sunar. Daha karmaşık döngü yapıları yerine kullanıldığında kodun okunabilirliği ve performansını artırır. Eski yöntemlere göre daha az kod ile daha verimli bir yineleme sağlar.


// for...of döngüsü kullanımı
const colors = ['kırmızı', 'yeşil', 'mavi'];
for (const color of colors) {
  console.log(color);
}

5. Array.from() Metodu

Array.from() metodu, birçok farklı kaynaktan (örneğin, bir string, bir argüman listesi) yeni bir dizi oluşturmanıza yardımcı olur. Bu metod, özellikle array-like objelerle çalışırken çok faydalıdır. Hızlı ve verimli bir şekilde yeni bir dizi oluşturmanıza olanak sağlar.


// Array.from() metodu kullanımı
const str = 'Merhaba';
const arrayFromStr = Array.from(str); // ['M', 'e', 'r', 'h', 'a', 'b', 'a']
console.log(arrayFromStr);

6. Object.entries() ve Object.values() Metotları

Object.entries() metodu, bir nesnenin kendi özelliklerinin [key, value] çiftlerinden oluşan bir dizi olarak döndürür. Benzer şekilde, Object.values() metodu, bir nesnenin kendi değerlerini bir dizi olarak döndürür. Bu metotlar, nesneler üzerinde iterasyon yapmayı ve işlemleri kolaylaştırmayı sağlarlar. Kodun okunabilirliğini artırırken daha verimli bir işlem gerçekleştirilmesini sağlar.


// Object.entries() ve Object.values() kullanımı
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.entries(obj)); // [ [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ] ]
console.log(Object.values(obj)); // [ 1, 2, 3 ]

7. Promise.allSettled()

Promise.allSettled(), birden çok promise’in sonucunu beklemek için kullanılır. Farklı olarak, bu metod, bir promise başarısız olsa bile diğer promise’lerin sonuçlarını bekler ve hepsinin sonuçlarını bir dizi içinde döndürür. Bu özellik, hata yönetimini kolaylaştırırken tüm işlemlerin tamamlanmasını garanti eder.


// Promise.allSettled() kullanımı
const promises = [
  Promise.resolve(1),
  Promise.reject(2),
  Promise.resolve(3)
];

Promise.allSettled(promises)
  .then(results => {
    console.log(results);
    // [ { status: 'fulfilled', value: 1 }, { status: 'rejected', reason: 2 }, { status: 'fulfilled', value: 3 } ]
  });

Bu gizli özelliklerin kullanımı, kodunuzun performansını artıracak ve daha temiz, okunabilir ve sürdürülebilir bir kod yazmanıza olanak sağlayacaktır. Daha fazla bilgi ve ipucu için fatihsoysal.com sitesini ziyaret edebilirsiniz. Ayrıca, bu konuda daha detaylı bilgi edinmek için Mozilla Developer Network sitesini de inceleyebilirsiniz.

Umarım bu makale faydalı olmuştur. Sorularınız veya yorumlarınız varsa lütfen paylaşın.

#Etiketler: JavaScript, performans, optimizasyon, optional chaining, nullish coalescing, BigInt, for…of, Array.from, Object.entries, Object.values, Promise.allSettled, web geliştirme, kod optimizasyonu, Fatih Soysal

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version