2025’in En Çok Sorulan 10 JavaScript Röportaj Sorusu (Basit Cevaplar ve Kod Örnekleriyle)
Merhaba! Fatih Soysal olarak, yazılım dünyasında oldukça popüler olan JavaScript dilinde sıkça karşılaşılan röportaj sorularını sizler için derledim. Bu makalede, 2025 yılında muhtemelen en çok sorulacak 10 JavaScript sorusunu, basit ve anlaşılır cevaplarıyla birlikte ele alacağız. Ayrıca, her soru için pratik kod örnekleri de sunacağım. Hazırsanız başlayalım!
1. “this” anahtar kelimesi nedir ve nasıl çalışır?
JavaScript’te “this” anahtar kelimesi, bir fonksiyonun çağrılma bağlamına bağlı olarak farklı değerler alabilir. Bu, fonksiyonun nasıl çağrıldığına bağlıdır. Örneğin, bir nesne metodu içinde kullanıldığında “this”, o nesneyi işaret eder. Ancak, global kapsamda çağrılırsa, “this” pencere nesnesini (browser ortamında) veya global nesneyi (node.js ortamında) işaret edebilir. Aşağıdaki örnek, “this” anahtar kelimesinin farklı kullanım şekillerini göstermektedir:
const myObject = {
name: "Fatih",
greet: function() {
console.log("Merhaba, benim adım " + this.name);
}
};
myObject.greet(); // Merhaba, benim adım Fatih
const anotherGreet = myObject.greet;
anotherGreet(); // Merhaba, benim adım undefined (global kapsamda çağrıldığı için)
Bu durumu daha iyi anlamak için web sitemi ziyaret edebilirsiniz. Ayrıca, arrow fonksiyonlarında “this” anahtar kelimesinin farklı davrandığını da belirtmek isterim.
2. Closure (Kapanış) nedir? Örnek verin.
Closure, iç içe geçmiş fonksiyonların dış fonksiyonun kapsamına erişebilme özelliğidir. Dış fonksiyonun yaşam döngüsü sona erse bile, iç fonksiyon dış fonksiyonun değişkenlerine erişmeye devam edebilir. Bu, özel veri saklama ve durum yönetimi için çok kullanışlıdır. İşte basit bir örnek:
function outerFunction() {
let outerVar = "Dış Değişken";
function innerFunction() {
console.log(outerVar);
}
return innerFunction;
}
const myClosure = outerFunction();
myClosure(); // "Dış Değişken" yazdırır.
Gördüğünüz gibi, innerFunction, outerFunction’ın yaşam döngüsü bittikten sonra bile outerVar’a erişebiliyor. Bu, closure’ın temel prensibidir.
3. Promise’ler ve Async/Await nedir?
Promise’ler, zaman alan işlemlerin sonuçlarını yönetmek için kullanılan bir yapıdır. Async/Await ise Promise’leri daha temiz ve okunabilir bir şekilde kullanmamızı sağlar. Promise’ler, bir işlemin başarılı veya başarısız olup olmadığını belirten bir durum (resolved veya rejected) döndürür. Async/Await ile bu durumları daha senkron bir şekilde yönetebiliriz.
function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Veriler alındı!");
}, 2000);
});
}
async function processData() {
try {
const data = await fetchData();
console.log(data); // Veriler alındı!
} catch (error) {
console.error("Hata oluştu:", error);
}
}
processData();
Bu örnekte, fetchData fonksiyonu bir Promise döndürür ve processData fonksiyonu await ile bu Promise’in çözülmesini bekler. Bu sayede, kod daha okunaklı ve anlaşılır hale gelir.
4. Event Loop (Olay Döngüsü) nedir?
JavaScript, tek iş parçacıklı bir dildir. Ancak, olay döngüsü sayesinde, asenkron işlemleri (örneğin, ağ istekleri) yönetebilir. Olay döngüsü, çağrılmayı bekleyen fonksiyonları bir kuyrukta tutar ve bunları tek tek işler. Bu sayede, program donmadan asenkron işlemler tamamlanabilir.
5. Prototypal Inheritance (Prototipsel Miras Alma) nedir?
JavaScript, prototipsel miras alma kullanır. Bu, bir nesnenin özelliklerini ve yöntemlerini başka bir nesneden miras alabileceği anlamına gelir. Her nesnenin bir prototipi vardır ve bu prototip, nesnenin özelliklerine ve yöntemlerine erişmesine olanak tanır. Bu özellik, kodun tekrar kullanılabilirliğini artırır.
6. == ve === arasındaki fark nedir?
== operatörü, gevşek karşılaştırma yaparken, === operatörü kesin karşılaştırma yapar. == operatörü, iki değerin türünü dönüştürerek karşılaştırma yaparken, === operatörü, türleri aynı değilse false döndürür. Kesin eşitlik kontrolü için === kullanmak daha güvenlidir.
7. Callback fonksiyonları nedir?
Callback fonksiyonları, bir fonksiyonun argüman olarak bir başka fonksiyon alması ve bu fonksiyonu belirli bir işlem tamamlandıktan sonra çağırmasıdır. Bu, asenkron işlemleri yönetmek için sıkça kullanılır. Örneğin, bir ağ isteği tamamlandıktan sonra, callback fonksiyonu çalıştırılarak sonuçlar işlenebilir.
8. Map, Filter ve Reduce fonksiyonları nelerdir?
Bunlar, JavaScript’in Array nesnesinde bulunan yüksek seviye fonksiyonlardır ve diziler üzerinde işlemler yapmayı kolaylaştırırlar. map, dizinin her elemanı üzerinde bir fonksiyon çalıştırır ve yeni bir dizi döndürür. filter, diziden belirli bir koşulu sağlayan elemanları filtreler. reduce, dizinin elemanlarını tek bir değer haline getirir.
9. DOM manipülasyonu nedir?
DOM (Document Object Model), bir HTML belgesinin ağaç yapısını temsil eden bir nesne modelidir. DOM manipülasyonu, JavaScript kullanarak bu ağaç yapısını değiştirmek anlamına gelir. Bu, dinamik web sayfaları oluşturmak için çok önemlidir.
10. HTTP status kodları nedir ve ne anlama gelir?
HTTP status kodları, bir web sunucusunun bir istek hakkında bilgi vermek için kullandığı üç haneli kodlardır. Örneğin, 200 OK, isteğin başarılı bir şekilde işlendiği anlamına gelirken, 404 Not Found, istenen kaynağın bulunamadığı anlamına gelir. Web geliştirme için temel HTTP status kodlarını bilmek önemlidir.
Umarım bu makale, JavaScript röportaj sorularına hazırlanmanıza yardımcı olmuştur. Başarılar dilerim! Daha fazla bilgi ve örnek için web sitemi ziyaret edebilirsiniz.
#Etiketler: javascript, javascript röportaj soruları, javascript soruları cevapları, web geliştirme, programlama, kod örnekleri, 2025, yazılım mühendisi, this, closure, promise, async await, event loop, prototypal inheritance, map, filter, reduce, DOM manipülasyonu, HTTP status kodları