let x = 10; let y = "5"; console.log(x + y);
Seçenekler
Açıklama
Number + String işleminde JavaScript otomatik olarak sayıyı string'e çevirir. 10 + "5" = "105" (string birleştirme).let x = 10; let y = "5"; console.log(x + y);
Seçenekler
Açıklama
Number + String işleminde JavaScript otomatik olarak sayıyı string'e çevirir. 10 + "5" = "105" (string birleştirme).console.log(typeof null);
Seçenekler
Açıklama
typeof null "object" döner. Bu JavaScript'in bilinen bir hatasıdır (bug), dilden kaldırılamaz çünkü eski kodları bozar.const arr = [1, 2, 3]; arr.push(4); console.log(arr.length);
Seçenekler
Açıklama
const ile tanımlanan dizi/objenin içeriği değiştirilebilir, sadece yeniden atama yapılamaz. push(4) sonrası uzunluk 4 olur.let a = "5" - 3; console.log(a);
Seçenekler
Açıklama
Çıkarma operatörü (-) string'i otomatik olarak sayıya çevirir. "5" - 3 = 2.const topla = (a, b) => a + b; console.log(topla(3));
Seçenekler
Açıklama
b parametresi verilmediği için undefined olur. 3 + undefined = NaN.const ogrenci = {
ad: "Ali",
not: 85
};
console.log(ogrenci["ad"]);Seçenekler
Açıklama
Köşeli parantez (bracket notation) ile obje özelliğine erişilir. ogrenci["ad"] = "Ali".const dizi = [10, 20, 30]; console.log(dizi[3]);
Seçenekler
Açıklama
Dizi index'i 0'dan başlar. dizi[0]=10, dizi[1]=20, dizi[2]=30. dizi[3] mevcut değil → undefined.const matris = [[1,2],[3,4],[5,6]]; console.log(matris[1][0]);
Seçenekler
Açıklama
matris[1] = [3,4]. matris[1][0] = 3. İlk index satırı, ikinci index elemanı seçer.let isim = "JavaScript"; console.log(isim.toUpperCase());
Seçenekler
Açıklama
toUpperCase() tüm karakterleri büyük harfe çevirir. "JavaScript" → "JAVASCRIPT".let metin = "Merhaba Dünya";
console.log(metin.includes("Dünya"));Seçenekler
Açıklama
includes() metodu string içinde aranılan ifadeyi bulursa true döner. "Dünya" metin içinde var.console.log(parseInt("42px"));Seçenekler
Açıklama
parseInt() string'in başından itibaren sayı okur, sayı olmayan kısmı yok sayar. "42px" → 42.console.log(0.1 + 0.2 === 0.3);
Seçenekler
Açıklama
JavaScript'te ondalıklı sayılar (floating point) tam hassasiyetle saklanamaz. 0.1 + 0.2 = 0.30000000000000004, bu yüzden === 0.3 false döner.const selamla = (isim = "Dünya") => "Merhaba, " + isim; console.log(selamla());
Seçenekler
Açıklama
Varsayılan parametre değeri kullanılır. isim verilmediğinde "Dünya" olur → "Merhaba, Dünya".let x = "Merhaba"; console.log(x[0]);
Seçenekler
Açıklama
String'ler dizi gibi index ile erişilebilir. x[0] ilk karakteri döner: "M".const obj = { a: 1, b: 2, c: 3 };
console.log(Object.keys(obj).length);Seçenekler
Açıklama
Object.keys() objenin anahtarlarını dizi olarak döner: ["a", "b", "c"]. length = 3.console.log(Boolean(""));
console.log(Boolean("0"));Seçenekler
Açıklama
Boş string "" falsy → false. "0" ise boş olmayan string, truthy → true.let dizi = [1, 2, 3, 4, 5]; dizi.splice(1, 2); console.log(dizi);
Seçenekler
Açıklama
splice(1, 2) index 1'den başlayarak 2 eleman siler. [1, 2, 3, 4, 5] → 2 ve 3 silinir → [1, 4, 5].let a = [1, 2, 3]; let b = a; b.push(4); console.log(a.length);
Seçenekler
Açıklama
Diziler referans tiplidir. b = a dediğimizde aynı diziyi paylaşırlar. b'ye push yapınca a da değişir. length = 4.const kisi = { ad: "Ali", yas: 25 };
const { ad, yas } = kisi;
console.log(ad, yas);Seçenekler
Açıklama
Destructuring ile objenin özellikleri aynı isimli değişkenlere atanır. ad = "Ali", yas = 25.for (let i = 0; i < 5; i++) {
if (i === 3) break;
}
console.log("Bitti");Seçenekler
Açıklama
Döngü içinde console.log yok, sadece döngü sonrası "Bitti" yazdırılır. break i=3'te döngüyü kırar ama çıktıyı etkilemez.let toplam = 0;
for (let i = 1; i <= 3; i++) {
toplam += i;
}
console.log(toplam);Seçenekler
Açıklama
1 + 2 + 3 = 6. Döngü i=1,2,3 için çalışır.const arr = ["a", "b", "c"];
for (let i = arr.length - 1; i >= 0; i--) {
console.log(arr[i]);
}Seçenekler
Açıklama
Döngü sondan başa (i=2,1,0) gider. arr[2]='c', arr[1]='b', arr[0]='a' sırasıyla yazdırılır.let sonuc = "";
for (let i = 0; i < 3; i++) {
sonuc += i;
}
console.log(sonuc);Seçenekler
Açıklama
sonuc bir string olduğundan += ile birleştirme yapılır. "" + 0 + 1 + 2 = "012".const arr = [10, 20, 30];
arr.forEach((val, i) => {
if (i === 1) return;
console.log(val);
});Seçenekler
Açıklama
forEach içinde return sadece o iterasyonu atlar (break gibi değil). i=1'de return ile 20 atlanır, 10 ve 30 yazdırılır.let i = 5;
while (i > 0) {
i -= 2;
}
console.log(i);Seçenekler
Açıklama
i: 5 → 3 → 1 → -1. i=-1 olunca i > 0 false olur ve döngü biter. Sonuç: -1.const meyveler = ["elma", "armut", "çilek"];
for (const meyve of meyveler) {
if (meyve === "armut") continue;
console.log(meyve);
}Seçenekler
Açıklama
continue "armut" iterasyonunu atlar, diğerleri yazdırılır: "elma" ve "çilek".const obj = { a: 1, b: 2, c: 3 };
for (const key in obj) {
console.log(key);
}Seçenekler
Açıklama
for...in döngüsü objenin anahtarlarını (key) döner: "a", "b", "c". Değerlere obj[key] ile erişilir.let sayac = 0;
do {
sayac++;
} while (sayac > 10);
console.log(sayac);Seçenekler
Açıklama
do...while döngüsü koşul kontrol edilmeden önce en az 1 kez çalışır. sayac 0→1 olur, 1 > 10 false → döngü biter. Sonuç: 1.let x = 0;
if (x) {
console.log("truthy");
} else {
console.log("falsy");
}Seçenekler
Açıklama
0 falsy bir değerdir. if(0) false olarak değerlendirilir, bu yüzden else bloğu çalışır.let yas = 18; let sonuc = yas >= 18 ? "Ehliyet alabilir" : "Alamaz"; console.log(sonuc);
Seçenekler
Açıklama
yas >= 18 true olduğu için ternary operatörün ilk kısmı ("Ehliyet alabilir") döner.let x = "5";
switch (x) {
case 5:
console.log("sayı");
break;
case "5":
console.log("string");
break;
default:
console.log("bilinmiyor");
}Seçenekler
Açıklama
switch strict comparison (===) kullanır. "5" === 5 false, "5" === "5" true olduğu için "string" yazdırılır.let not = 75; let harf; if (not >= 90) harf = "AA"; else if (not >= 80) harf = "BA"; else if (not >= 70) harf = "BB"; else harf = "CC"; console.log(harf);
Seçenekler
Açıklama
75 >= 90 false, 75 >= 80 false, 75 >= 70 true → harf = "BB".console.log(null == undefined); console.log(null === undefined);
Seçenekler
Açıklama
== (loose equality) ile null ve undefined eşittir → true. === (strict equality) ile tip farklı olduğundan → false.let x = 10; let y = x > 5 ? x > 8 ? "büyük" : "orta" : "küçük"; console.log(y);
Seçenekler
Açıklama
İç içe ternary: x > 5 true → x > 8 true → "büyük".const sayilar = [1, 2, 3, 4, 5]; const sonuc = sayilar.filter(x => x > 3); console.log(sonuc);
Seçenekler
Açıklama
filter() koşulu sağlayan elemanları döner. x > 3 koşulunu sağlayanlar: 4 ve 5.const isimler = ["Ali", "Ay", "Mehmet"]; const sonuc = isimler.map(x => x.length); console.log(sonuc);
Seçenekler
Açıklama
map() her elemanı dönüştürür. Her ismin length'i alınır: Ali=3, Ay=2, Mehmet=6.const sayilar = [1, 2, 3, 4]; const sonuc = sayilar .filter(x => x % 2 === 0) .map(x => x * 10); console.log(sonuc);
Seçenekler
Açıklama
Önce filter: çift sayılar [2, 4]. Sonra map: her biri 10 ile çarpılır → [20, 40].const sayilar = [1, 2, 3]; const sonuc = sayilar.map(x => x * x); console.log(sonuc);
Seçenekler
Açıklama
map() her elemanın karesini alır: 1*1=1, 2*2=4, 3*3=9 → [1, 4, 9].const kelimeler = ["Ali", "Veli", "Can", "Ece"]; const sonuc = kelimeler.filter(k => k.length === 3); console.log(sonuc);
Seçenekler
Açıklama
filter() 3 harfli olanları seçer: "Ali"(3), "Veli"(4-hayır), "Can"(3), "Ece"(3) → ["Ali", "Can", "Ece"].const arr = [5, 10, 15, 20]; const sonuc = arr.filter(x => x >= 10).map(x => x / 5); console.log(sonuc);
Seçenekler
Açıklama
filter: x >= 10 → [10, 15, 20]. map: her biri 5'e bölünür → [2, 3, 4].const arr = [1, 2, 3, 4, 5]; const sonuc = arr.map(x => x * 2).filter(x => x > 6); console.log(sonuc);
Seçenekler
Açıklama
Önce map: [2, 4, 6, 8, 10]. Sonra filter x > 6: [8, 10].const sayilar = [3, 7, 2, 9, 1]; const enBuyuk = Math.max(...sayilar); console.log(enBuyuk);
Seçenekler
Açıklama
Spread (...) ile dizi elemanları Math.max'a tek tek parametre olarak verilir. En büyük değer: 9.// HTML: <p id="mesaj">Merhaba</p>
const el = document.getElementById("mesaj");
el.textContent = "Selam";
console.log(el.textContent);Seçenekler
Açıklama
textContent ile içerik "Selam" olarak değiştirildi, sonra bu yeni değer okundu.// HTML: <div class="kutu">A</div>
// <div class="kutu">B</div>
const kutular = document.querySelectorAll(".kutu");
console.log(kutular.length);Seçenekler
Açıklama
querySelectorAll ".kutu" sınıfına sahip tüm elemanları seçer. 2 adet div var, length = 2.// HTML: <input id="isim" value="Ali">
const el = document.getElementById("isim");
el.value = "Veli";
console.log(el.value);Seçenekler
Açıklama
Input'un value'su "Veli" olarak değiştirildi, sonra bu yeni değer okundu.// HTML: <ul id="liste">
// <li>A</li>
// <li>B</li>
// <li>C</li>
// </ul>
const liste = document.getElementById("liste");
console.log(liste.children.length);Seçenekler
Açıklama
children özelliği doğrudan alt elemanları döner. 3 adet <li> var → length = 3.// HTML: <p id="metin">Eski Metin</p>
const el = document.getElementById("metin");
el.innerHTML = "<strong>Yeni</strong> Metin";
console.log(el.textContent);Seçenekler
Açıklama
innerHTML HTML etiketlerini yorumlar. textContent ise sadece metin içeriğini döner (etiketler olmadan): "Yeni Metin".// HTML: <button id="btn">Tıkla</button>
const btn = document.getElementById("btn");
btn.onclick = () => { console.log("A"); };
btn.onclick = () => { console.log("B"); };
// butona tıklandığında ne yazdırılır?Seçenekler
Açıklama
onclick özelliği tek bir fonksiyon tutar. İkinci atama birincinin üzerine yazar. Sadece "B" yazdırılır.// HTML: <div id="kutu" style="color: red;">Merhaba</div>
const el = document.getElementById("kutu");
el.style.color = "blue";
console.log(el.style.color);Seçenekler
Açıklama
el.style.color ile inline stil "blue" olarak değiştirildi, sonra bu yeni değer okundu.<!-- Hangisi sırasız (unordered) liste oluşturur? --> A) <ol><li>Eleman</li></ol> B) <ul><li>Eleman</li></ul> C) <dl><li>Eleman</li></dl> D) <list><item>Eleman</item></list>
Seçenekler
Açıklama
<ul> (unordered list) sırasız liste oluşturur. <ol> sıralı listedir. <dl> tanım listesidir. <list> geçerli bir HTML etiketi değildir.<a href="https://google.com" target="_blank"> Tıkla </a> <!-- target="_blank" ne yapar? -->
Seçenekler
Açıklama
target="_blank" linki yeni bir sekmede/pencerede açar. Varsayılan (_self) aynı sekmede açar.<table>
<thead>
<tr>
<th>Ad</th>
<th>Not</th>
</tr>
</thead>
<tbody>
<tr>
<td>Ali</td>
<td>85</td>
</tr>
</tbody>
</table>
<!-- <th> ile <td> arasındaki fark nedir? -->Seçenekler
Açıklama
<th> (table header) başlık hücresidir, kalın ve ortalı görünür. <td> (table data) normal veri hücresidir.<form>
<input type="email" id="mail" placeholder="E-posta">
<select id="sehir">
<option value="">Seçiniz</option>
<option value="ist">İstanbul</option>
<option value="ank">Ankara</option>
</select>
<button type="submit">Gönder</button>
</form>
<!-- input type="email" ne sağlar? -->Seçenekler
Açıklama
type="email" tarayıcının yerleşik e-posta format doğrulamasını etkinleştirir. @ işareti olmadan form gönderilemez.<!-- Hangisi semantik HTML etiketi DEĞİLDİR? --> A) <header> B) <nav> C) <div> D) <article>
Seçenekler
Açıklama
<div> genel amaçlı bir container'dır, semantik anlam taşımaz. <header>, <nav>, <article> ise içeriğin anlamını belirten semantik etiketlerdir.<a href="#bolum2">Bölüm 2'ye Git</a> <!-- ... sayfa içeriği ... --> <div id="bolum2"> <h2>Bölüm 2</h2> </div> <!-- Bu link ne yapar? -->
Seçenekler
Açıklama
href="#bolum2" sayfa içi çapa (anchor) bağlantısıdır. Sayfadaki id="bolum2" olan elemana kaydırır./* Hangisinin önceliği (specificity) en yüksektir? */
p { color: red; }
.metin { color: blue; }
#baslik { color: green; }Seçenekler
Açıklama
CSS specificity sıralaması: element (0,0,1) < class (0,1,0) < id (1,0,0). #baslik en yüksek önceliğe sahiptir..kutu {
width: 200px;
padding: 20px;
border: 5px solid black;
box-sizing: content-box;
}
/* Kutunun toplam genişliği kaç px? */Seçenekler
Açıklama
content-box'ta width sadece içerik alanıdır. Toplam = 200 + (20*2 padding) + (5*2 border) = 250px..kutu {
width: 200px;
padding: 20px;
border: 5px solid black;
box-sizing: border-box;
}
/* Kutunun toplam genişliği kaç px? */Seçenekler
Açıklama
border-box'ta width toplam genişliktir (padding ve border dahil). Toplam her zaman 200px kalır. İçerik alanı = 200 - 40 - 10 = 150px..container {
display: flex;
justify-content: space-between;
}
/* justify-content: space-between ne yapar? */Seçenekler
Açıklama
space-between: ilk eleman sola, son eleman sağa yapışır, aradaki boşluk eşit dağılır. space-evenly ise kenarlarda da eşit boşluk bırakır..btn {
background: blue;
transition: all 0.3s ease;
}
.btn:hover {
background: red;
transform: scale(1.1);
}
/* transition ne yapar? */Seçenekler
Açıklama
transition özellik değişikliklerini belirtilen sürede yumuşak geçişle uygular. 0.3s ease ile renk ve boyut değişimi akıcı olur..container {
display: flex;
flex-direction: column;
align-items: center;
}
/* Bu düzende elemanlar nasıl sıralanır? */Seçenekler
Açıklama
flex-direction: column elemanları dikey sıralar. align-items: center ise çapraz eksende (yatayda) ortalar..spinner {
width: 40px;
height: 40px;
border: 4px solid #ccc;
border-top: 4px solid orange;
border-radius: 50%;
animation: don 1s linear infinite;
}
@keyframes don {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
/* "infinite" ne anlama gelir? */Seçenekler
Açıklama
infinite animasyonun sonsuz tekrarlanacağını belirtir. linear ise sabit hızda dönmesini sağlar.// Next.js nedir?
Seçenekler
Açıklama
Next.js, React üzerine kurulmuş bir web framework'üdür. Yönlendirme (routing), sunucu tarafı render ve dosya bazlı yapı gibi özellikleri hazır olarak sunar.// app/iletisim/page.tsx
export default function Iletisim() {
return <h1>İletişim</h1>;
}
// Bu sayfaya hangi URL'den erişilir?Seçenekler
Açıklama
Next.js dosya bazlı yönlendirme kullanır. app/iletisim/page.tsx dosyası /iletisim URL'ine karşılık gelir."use client";
import { useState } from "react";
export default function Sayac() {
const [sayi, setSayi] = useState(0);
return <h1>{sayi}</h1>;
}
// "use client" ne işe yarar?Seçenekler
Açıklama
Next.js'te bileşenler varsayılan olarak sunucuda çalışır. useState, useEffect, onClick gibi tarayıcı özelliklerini kullanmak için dosyanın en üstüne "use client" yönergesi eklenir.import Link from "next/link";
export default function Menu() {
return (
<>
<Link href="/hakkimda">Hakkımda (Link)</Link>
<a href="/hakkimda">Hakkımda (a)</a>
</>
);
}
// <Link> ile <a> arasındaki temel fark nedir?Seçenekler
Açıklama
Next.js'in <Link> bileşeni sayfayı tamamen yenilemeden (client-side) geçiş yapar ve görünür haldeki hedef sayfaları arka planda önceden hazırlar. <a> ise sayfayı baştan yükler ve state'i sıfırlar.function Selam(props) {
return <h1>Merhaba {props.isim}</h1>;
}
// Kullanım:
<Selam isim="Ali" />
// Ekrana ne yazar?Seçenekler
Açıklama
props bileşene dışarıdan veri geçirmek için kullanılır. JSX içinde {props.isim} ifadesi "Ali" değerini ekrana basar."use client";
import { useState } from "react";
export default function Sayac() {
const [sayi, setSayi] = useState(0);
return (
<button onClick={() => setSayi(sayi + 1)}>
{sayi}
</button>
);
}
// useState ne işe yarar?Seçenekler
Açıklama
useState bir React hook'udur. Bileşene state ekler ve [değer, güncelleyici] döner. Güncelleyici çağrıldığında bileşen yeniden render olur.const [sayi, setSayi] = useState(5); // useState(5) ifadesindeki 5 nedir?
Seçenekler
Açıklama
useState'e verilen argüman state'in başlangıç değeridir. İlk render'da sayi = 5 olur."use client";
import { useState } from "react";
export default function Form() {
const [ad, setAd] = useState("");
return (
<>
<input
value={ad}
onChange={(e) => setAd(e.target.value)}
/>
<p>Merhaba {ad}</p>
</>
);
}
// Input'a "Ali" yazılırsa ne olur?Seçenekler
Açıklama
onChange her tuş vuruşunda setAd ile state'i günceller. ad = "Ali" olunca bileşen yeniden render edilir ve "Merhaba Ali" görünür."use client";
import { useEffect } from "react";
export default function Sayfa() {
useEffect(() => {
console.log("Çalıştı");
}, []);
return <h1>Merhaba</h1>;
}
// Boş bağımlılık dizisi [] ne anlama gelir?Seçenekler
Açıklama
useEffect'in ikinci parametresi bağımlılık dizisidir. Boş dizi [] verildiğinde effect yalnızca ilk render'da (mount) bir kez çalışır.// useEffect ne için kullanılır?
Seçenekler
Açıklama
useEffect, bileşen render edildikten sonra yan etkileri (API çağrısı, zamanlayıcı, abonelik gibi) çalıştırmak için kullanılır.export default function Liste() {
const meyveler = ["elma", "armut", "çilek"];
return (
<ul>
{meyveler.map((m) => (
<li key={m}>{m}</li>
))}
</ul>
);
}
// Ekrana kaç <li> elemanı yazılır?Seçenekler
Açıklama
map() dizinin her elemanı için bir <li> üretir. 3 elemanlı dizi → 3 adet <li>.const isimler = ["Ali", "Veli"];
return (
<ul>
{isimler.map((i) => (
<li>{i}</li>
))}
</ul>
);
// Bu kodda eksik olan nedir?Seçenekler
Açıklama
JSX içinde map ile liste oluştururken her elemana benzersiz bir key prop'u verilmelidir. React, listeyi verimli güncelleyebilmek için bu key'i kullanır. Örn: <li key={i}>{i}</li>.// Bir Counter (Sayaç) uygulamasında sayının değerini her // tıklamada 1 artırmak için buton üzerinde hangi olay (event) // tetiklenmelidir?
Seçenekler
Açıklama
Buton gibi elementlere fare ile tıklandığında gerçekleşecek eylemleri yönetmek için onClick olayı kullanılır. onKeyUp klavye, onChange ise form girdileri içindir.// Next.js (App Router) mimarisinde, dosya bazlı yönlendirme // sistemine göre bir sayfa oluşturmak için dosya adı ne olmalıdır?
Seçenekler
Açıklama
Next.js App Router'da bir klasörün rota olabilmesi için içinde mutlaka page.js dosyası barındırması gerekir. route.js ise API uç noktaları için kullanılır.// Next.js'te veri yüklenirken kullanıcıya otomatik olarak // bir yükleniyor arayüzü göstermek için App Router içinde hangi // özel dosya ismi kullanılır?
Seçenekler
Açıklama
Next.js, bir sayfa yüklenirken React Suspense altyapısını kullanarak otomatik olarak loading.js dosyasındaki içeriği ekrana getirir.// Modern tarayıcılarda entegre olarak bulunan ve bir adresten (URL) // asenkron olarak veri çekmemizi sağlayan fonksiyon hangisidir?
Seçenekler
Açıklama
fetch API'si, ağ üzerinden kaynakları almak için tarayıcılarda yerleşik olarak sunulan modern bir JavaScript fonksiyonudur. axios ise harici bir kütüphanedir.// Next.js'te dinamik bir rota (dynamic route) oluşturmak için // klasör ismi nasıl tanımlanmalıdır?
Seçenekler
Açıklama
Next.js dosya sisteminde bir klasör adını köşeli parantez içine almak ([id]), o klasörün dinamik bir rota (parametre) olduğunu belirtir.// API'lerden veri alırken veya veri gönderirken en yaygın kullanılan, // insan tarafından okunabilen hafif veri değişim formatı hangisidir?
Seçenekler
Açıklama
JSON (JavaScript Object Notation), JavaScript nesne yapısına dayanan, günümüzde API veri alışverişlerinde endüstri standardı haline gelmiş hafif bir formattır.// Kullanıcı bir input alanına yazı yazarken klavyeden bir tuşu // elinden çektiği anı yakalamak için hangi event listener kullanılır?
Seçenekler
Açıklama
onKeyUp olayı, kullanıcı klavyedeki bir tuşa basıp parmağını tuştan kaldırdığı anda tetiklenir. onKeyDown ise tuşa basıldığı anı yakalar.// React'ta props verileri hakkında aşağıdakilerden hangisi doğrudur?
Seçenekler
Açıklama
Props verileri tek yönlü veri akışına (one-way data binding) uygundur ve alt bileşen için salt okunurdur, doğrudan manipüle edilemezler.// Bir web API'sine istek attıktan sonra gelen JSON yanıtını // JavaScript nesnesine dönüştürmek için hangi metot asenkron olarak çağrılır?
Seçenekler
Açıklama
fetch ile gelen yanıt nesnesi (Response) üzerindeki .json() metodu, gelen ham veriyi asenkron olarak ayrıştırıp JavaScript nesnesine dönüştürür.// app/users/[id]/page.js // URL /users/123 olduğunda params.id değeri ne olur?
Seçenekler
Açıklama
URL'deki /users/ kısmından sonra gelen dinamik değer 123 olduğu için Next.js bunu yakalar ve params.id değerine eşitler.// React'ta bir state güncellendiğinde aşağıdakilerden hangisi gerçekleşir?
Seçenekler
Açıklama
State değişimi React'a o bileşenin arayüzünün güncellenmesi gerektiğini söyler ve DOM'u güncellemek için bileşeni yeniden render (re-render) eder.// Next.js App Router yapısında tüm sayfaların etrafını saran, // header ve footer gibi ortak bileşenleri bir kez tanımlamamızı // sağlayan özel dosya hangisidir?
Seçenekler
Açıklama
layout.js, altındaki sayfaların veya alt klasörlerin ortak yerleşim planını ve şablonunu belirlemek için kullanılır, durumunu sayfa geçişlerinde korur.// React'ta "Counter" uygulamasında state doğrudan // count = count + 1 şeklinde güncellenirse ne olur?
Seçenekler
Açıklama
State doğrudan mutasyona uğratıldığında React bu değişikliği fark edemez ve arayüzü yeniden render etmez. Bu yüzden her zaman setCount gibi güncelleyici fonksiyonlar kullanılmalıdır.// Aşağıdakilerden hangisi geçerli bir useState başlangıç değeri olamaz?
Seçenekler
Açıklama
useState; string, sayı, boolean, nesne, dizi, null, undefined veya fonksiyon dahil tüm geçerli JavaScript veri tiplerini başlangıç değeri olarak kabul eder.<button onClick={handleClick()}>Tıkla</button>
// Bu tanımdaki hata nedir?Seçenekler
Açıklama
Parantez koymak fonksiyonu hemen yürütür. Doğru kullanım parantez olmadan sadece {handleClick} şeklinde fonksiyonun referansını vermektir.// JSON formatındaki bir veride aşağıdakilerden hangisi // geçerli bir veri türü olarak kullanılamaz?
Seçenekler
Açıklama
JSON standardında undefined tanımı yoktur. Eksik veya tanımsız değerler için null kullanılır veya anahtar nesneye hiç eklenmez.// React'ta bir input elementindeki metin her değiştiğinde // bu değişimi yakalayıp state'e aktarmak için hangi event listener // kullanılır?
Seçenekler
Açıklama
onChange olayı, form elemanlarının (input, select, textarea) değeri kullanıcı tarafından her değiştirildiğinde tetiklenir.useEffect(() => {
// ...
}, [search]);
// Bu efekt ne zaman çalışır?Seçenekler
Açıklama
Bağımlılık dizisine yazılan elemanlar React tarafından izlenir. İlk yüklemeden sonra, bu dizideki herhangi bir eleman güncellendikçe efekt fonksiyonu yeniden yürütülür.// Aşağıdaki kod parçalarından hangisi başarılı bir şekilde // 1'den başlayan bir sayaç durum (state) yapısı tanımlar?
Seçenekler
Açıklama
Doğru useState kullanımı dizi parçalama yöntemiyle ilk eleman olarak değişkeni, ikinci eleman olarak güncelleyici fonksiyonu alır. Parantez içi de başlangıç değeridir.// Bir web uygulamasında API (Application Programming Interface) // temel olarak hangi amaca hizmet eder?
Seçenekler
Açıklama
API'ler uygulamalar arası iletişimi ve veri transfer köprülerini oluşturan, belirli kuralları olan standart yazılım arayüzleridir.// React'ta bir fonksiyonel bileşen (Functional Component) // temelde ne döndürmek (return) zorundadır?
Seçenekler
Açıklama
React fonksiyonel bileşenleri ekranda ne gösterileceğini belirten JSX ifadeleri döndürür. Eğer arayüzde bir şey çizilmeyecekse açıkça null döndürülmelidir.// Bir JSON verisi stringe çevrildiğinde veya okunurken en dışta // hangi karakterlerin kullanımı zorunludur?
Seçenekler
Açıklama
Geçerli bir JSON dokümanı en dışta ya bir nesneyi (object) temsil eden {} ya da bir listeyi (array) temsil eden [] ile sarmalanmak zorundadır."use client";
import { useState } from "react";
export default function Profil() {
const [girisYapildi, setGirisYapildi] = useState(false);
return (
<div>
{girisYapildi ? <h1>Hoş geldin!</h1> : <h1>Lütfen giriş yap</h1>}
</div>
);
}
// JSX içindeki { ... ? ... : ... } yapısının adı ve görevi nedir?Seçenekler
Açıklama
JSX içine doğrudan if yazılamaz, ifade (expression) yazılır. Ternary operatörü (kosul ? a : b) tek bir ifade olduğu için JSX'in süslü parantezleri içinde kullanılabilir ve koşullu render için en yaygın yöntemdir.const yas = 17; const mesaj = yas >= 18 ? "Reşit" : "Reşit değil"; console.log(mesaj); // Ekrana ne yazar?
Seçenekler
Açıklama
yas >= 18 ifadesi 17 >= 18 olduğundan false döner. Ternary operatörü false durumda iki nokta üst üsteden sonraki değeri ("Reşit değil") seçer.// Aşağıdakilerden hangisi geçerli bir React functional component // tanımıdır?
Seçenekler
Açıklama
React bileşen isimleri büyük harfle başlamalıdır (PascalCase) — küçük harfle başlayan tag'leri React HTML elementi sanır. Ayrıca bileşen JSX'i return ile döndürmelidir; sadece yazmak yeterli değildir.// Aşağıdaki iki tanım arasındaki fark nedir?
// 1) function Karsila({ isim }) {
// return <h1>Merhaba {isim}</h1>;
// }
// 2) const Karsila = ({ isim }) => <h1>Merhaba {isim}</h1>;Seçenekler
Açıklama
React'ta bileşenler hem function declaration (function Karsila() { ... }) hem de arrow function (const Karsila = () => ...) ile yazılabilir. Her ikisi de JSX döndürdüğü sürece aynı şekilde çalışır; sadece yazım stili farkıdır.