0Pricing
Frontend Academy · Ders

Şablon Dizeleri ve İsteğe Bağlı Zincirleme

Şablon dizeleriyle dizelere ifadeler ekleyin, ?. ile iç içe özelliklere güvenli biçimde erişin ve nullish coalescing operatörü ?? ile kısa devre değerlendirmesi yapın.

Şablon Dizeleri ve İsteğe Bağlı Zincirleme, CoddyKit'te ücretsiz bir Frontend Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Frontend Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Frontend Academy kursu toplamda 4 dersten oluşur.

Şablon Dizeleri: Ters Tırnaklı Dizeler

Şablon dizeleri (ters tırnaklı dizeler), çok satırlı dizeleri ve içine gömülü ifadeleri destekler. Dize birleştirmede kullanılan + işlecinin yerini alır ve amacı daha açık hâle getirir.

// String concatenation (old way):
const msg = 'Hello, ' + name + '! You have ' + count + ' messages.';

// Template literal (modern):
const msg2 = `Hello, ${name}! You have ${count} messages.`;

Çok Satırlı Şablon Dizeleri

Şablon dizeleri satır sonlarını ve girintileri korur. Artık \n kullanmanız veya birden çok satıra yayılan dize birleştirmeleri yapmanız gerekmez.

const html = `
  <div class="card">
    <h2>${title}</h2>
    <p>${body}</p>
  </div>
`;

const sql = `
  SELECT *
  FROM users
  WHERE age > ${minAge}
  ORDER BY name
`;

Şablon Dizelerindeki İfadeler

Herhangi bir JavaScript ifadesi ${} içine yazılabilir: üçlü ifadeler, işlev çağrıları, aritmetik işlemler ve yöntem çağrıları.

const tax = 0.2;
const price = 50;
const receipt = `
  Subtotal: $${price}
  Tax (${tax * 100}%): $${price * tax}
  Total: $${price * (1 + tax)}
  ${isPaid ? 'PAID' : 'UNPAID'}
`;

Etiketli Şablon Dizeleri

Etiketli bir şablon, dize parçalarını ve araya yerleştirilmiş değerleri bağımsız değişken olarak kullanarak bir işlev çağırır. Güvenli sorgu oluşturmak için styled-components, GraphQL (gql``) ve sql`` gibi kitaplıklarda kullanılır.

function highlight(strings, ...values) {
  return strings.reduce((acc, str, i) =>
    acc + str + (values[i] !== undefined ? `<mark>${values[i]}</mark>` : ''), '');
}
const msg = highlight`Hello ${name}, you have ${count} messages.`;

İsteğe Bağlı Zincirleme: ?.

İsteğe bağlı zincirleme işleci ?., sol taraf null veya undefined ise hata vermek yerine undefined değerine kısa devre yapar. Koruyucu null denetimlerini ortadan kaldırır.

const user = null;

// Without optional chaining (throws TypeError):
// user.profile.avatar

// With optional chaining (returns undefined):
const avatar = user?.profile?.avatar;
console.log(avatar); // undefined — no error

İsteğe Bağlı Yöntem Çağrıları

obj?.method(), yöntemi yalnızca obj null/undefined değilse çağırır. obj null ise hata vermeden undefined döndürür.

const timer = getTimer(); // might return null
timer?.start(); // only calls start() if timer exists

// Also works on array access:
const firstItem = arr?.[0]; // undefined if arr is null

Boş Değer Birleştirme: ??

Boş değer birleştirme işleci ??, sağ tarafı yalnızca sol taraf null veya undefined ise döndürür (yanlış kabul edilen değerlerde döndürmez). || işlecinden farklı olarak 0 veya '' değerlerini boş değer olarak değerlendirmez.

const port = config.port ?? 3000;  // 3000 only if port is null/undefined
const name = user.name ?? 'Anonymous';

// Compare with ||:
console.log(0 ?? 'default');   // 0 (not nullish)
console.log(0 || 'default');   // 'default' (falsy!)

Boş Değer Ataması: ??=

a ??= b, b değerini yalnızca a null veya undefined ise a'ya atar. a = a ?? b ifadesinin kısa biçimidir. Nesne özelliklerini koşullu olarak başlatmak için kullanışlıdır.

let cache = {};
function getUser(id) {
  cache[id] ??= fetchUser(id); // only fetch if not cached
  return cache[id];
}

Mantıksal Atama Operatörleri

&&=, yalnızca sol taraf doğru kabul edilen bir değerse atama yapar. ||=, yalnızca sol taraf yanlış kabul edilen bir değerse atama yapar. Bunlar, ??= ile birlikte koşullu atamaları özlü hâle getirir.

user.name ||= 'Anonymous';  // set if falsy
user.role &&= user.role.toLowerCase(); // transform if exists

?. ve ?? Birlikte Kullanma

Güvenli özellik erişimi ve varsayılan bir değer için isteğe bağlı zincirlemeyi boş değer birleştirmeyle birleştirin.

const city = user?.address?.city ?? 'Unknown';
const total = cart?.items?.length ?? 0;

Bilmeniz Gereken Dize Yöntemleri

Yaygın dize yöntemleri: trim(), trimStart(), trimEnd(), padStart(), padEnd(), startsWith(), endsWith(), includes(), replaceAll(), at().

const str = '  Hello World  ';
str.trim();           // 'Hello World'
str.includes('World'); // true
'5'.padStart(3, '0'); // '005'
'abc'.at(-1);         // 'c'
'aabbcc'.replaceAll('b', 'x'); // 'aaxxcc'

Hızlı Kontrol

obj null ise const val = obj?.foo?.bar ?? 'default' ne döndürür?

Özet: Şablon Dizeleri ve İsteğe Bağlı Zincirleme

Ters tırnaklı dizeler ifadeleri ve çok satırlı kullanımı destekler. Etiketli şablonlar alan özgü dilleri mümkün kılar. ?. özelliklere null denetimleri yapmadan güvenle erişir. ?? değer null/undefined olduğunda (yalnızca yanlış kabul edilen değerlerde değil) varsayılan bir değer sağlar. Güvenli ve okunabilir veri erişimini varsayılan değerlerle sağlamak için bunları birleştirin.

Sıkça Sorulan Sorular

“Şablon Dizeleri ve İsteğe Bağlı Zincirleme” dersi ücretsiz mi?

Evet — “Şablon Dizeleri ve İsteğe Bağlı Zincirleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Frontend Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Frontend Academy kursu toplamda 4 dersten oluşur.

“Şablon Dizeleri ve İsteğe Bağlı Zincirleme” dersinde ne öğreneceğim?

Şablon dizeleriyle dizelere ifadeler ekleyin, ?. ile iç içe özelliklere güvenli biçimde erişin ve nullish coalescing operatörü ?? ile kısa devre değerlendirmesi yapın. Frontend Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Frontend Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Frontend Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Şablon Dizeleri ve İsteğe Bağlı Zincirleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Frontend Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Frontend Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Dizi Metotları: map filter reduce find
  2. Nesne Destructuring ve Spread
  3. Şablon Dizeleri ve İsteğe Bağlı Zincirleme
  4. Modüller: import ve export
← Frontend Academy Sayfasına Dön