Karşılaşabileceğiniz JavaScript Mülakat Soruları
Yazan: Aaron Cao · Güncellendi

Temel konuları bekleyin: closures, event loop, this binding, prototype'lar ve var, let, const ile scoping. Ardından debounce yazma, bir diziyi düzleştirme veya bir promise yardımcı fonksiyonu yazma gibi kodlama alıştırmaları, artı event delegation gibi tarayıcı konuları. Kıdemli mülakatlarında async desenler ve performans da eklenir.
En çok hangi JavaScript temelleri sorulur?
JavaScript için soru listesi sonsuz gibi görünür ve rastgele sorular üzerinde çalışmak bunu aşmanın en yavaş yoludur. Bu bölüm, neredeyse her mülakat turunda mülakatçıların tekrar tekrar döndüğü kavramlara odaklanarak listeyi daraltır, böylece pratiğiniz gerçek dağılıma denk gelir. Beş konu turların çoğunu oluşturur:
- Closures: bir fonksiyonun neyi yakaladığı, klasik loop-variable hatası ve module desenlerinin neden işe yaradığı.
- Event loop: call stack, task queue ve microtask queue, ve karışık bir örnekte log'ların hangi sırayla yazdırıldığı.
- this binding: varsayılan, örtük, call ve apply ile açık bağlama, ve arrow function'ların bundan nasıl farklılaştığı.
- Prototype'lar: property aramasının chain boyunca nasıl ilerlediği, ve class söz diziminin arka planda neye derlendiği.
- Scoping: var'ın let ve const'a karşı durumu, hoisting ve temporal dead zone.
== ile === arasındaki eşitlik zorlaması (coercion), truthiness ve map, filter, reduce gibi dizi metotları, ön eleme seviyesini tamamlar. Yukarıdaki her maddeyi bir dakikadan kısa sürede sesli olarak açıklayabiliyorsanız, temel bilgiler turu sorun olmaz.
Hangi kodlama alıştırmalarını pratik yapmalısınız?
Kavram sorularının ötesinde, JavaScript turlarının çoğu canlı yapılan kısa bir uygulama alıştırması içerir. Tekrar eden bu soru kümesi küçüktür ve her biri defalarca deneme yerine sadece birkaç dakika sürene kadar üzerinde çalışmaya değer:
debouncevethrottleuygulayın, ve her birinin ne zaman uygun olduğunu söyleyin.- İç içe geçmiş bir diziyi rekürsiyon ile ve rekürsiyon olmadan düzleştirin.
- İlk hatada reject eden basitleştirilmiş bir
Promise.allyazın. - on, off ve emit ile küçük bir event emitter oluşturun.
- Bir object'i deep clone edin ve versiyonunuzun kaçırdığı durumları söyleyin.
Örneğin, orta seviye bir pozisyon için mülakata giren bir front-end adayına ısınma sorusu olarak debounce verilebilir, ardından bunu bir arama input'una bağlaması ve devam eden request'lere ne olduğunu açıklaması istenebilir. Asıl test bu takip sorusudur; mülakatçılar, dile dair modelinizin nerede bittiğini görmek için alıştırmayı genişletir.
Bunları geri adım atmayan bir mülakatçıya karşı sesli olarak pratik yapmak, kalıcı olmalarını sağlayan şeydir; mock interview sayfası, takip sorularıyla zamanlanmış oturumları nasıl çalıştıracağınızı anlatır.
Tarayıcı ve async soruları neye benzer?
Tarayıcıya yönelik roller, dil temellerinin üzerine bir katman daha ekler. Event delegation buradaki temel noktadır: bir parent üzerindeki tek bir listener'ın children üzerindeki binlercesinden neden daha iyi olduğu, bubbling'in bunu nasıl mümkün kıldığı ve capture phase'in ne zaman önemli olduğu. DOM update batching, layout thrash ve reflow'u neyin tetiklediği, performans ağırlıklı turlarda karşınıza çıkar.
Async sorular standart bir kalıba yakınsamış durumda: setTimeout, promise zincirleri ve async fonksiyonlarını karıştıran bir kod parçası, ve sizden çıktı sırasını tahmin etmeniz istenir. Cevap, microtask'ın macrotask'a karşı sıralamasına bağlıdır ve mülakatçılar sıranın kendisinden çok nedenini önemser. Hata yönetiminin await sınırları boyunca nasıl işlediği, promise chaining'in nesting'e karşı durumu ve Promise.race ile request'leri yarıştırmak bu kümeyi tamamlar.
Bu turların coding, behavioral ve system design formatları arasında nasıl farklılaştığı mülakat türleri merkezinde ele alınır.
Gerçek turda işe yarayacak şekilde nasıl pratik yapılır?
Cevapları okumak üretken hissettirir ama neredeyse hiçbir şey kazandırmaz. Tur sözlü, zamanlı ve etkileşimlidir, bu yüzden pratiğinizin de öyle olması gerekir. Yazarken anlattığınız, takip sorularıyla kesintiye uğradığınız ve bir saatle yarıştığınız deneme turları çalıştırın; bu baskı, hatırlamayı otomatik hale getiren şeydir. Diğer diller ve stack'ler için role özel soru kümeleri soru bankaları merkezinde yer alır.
Dürüst bir not: gerçek JavaScript turları genellikle ekranınız görünür durumdayken paylaşılan bir editörde gerçekleşir ve gözetimli değerlendirmeler bunu kaydeder. Bir asistan, orası için değil, hazırlık ve pratik içindir. Canlı yardımın meşru olduğu yerlerde, örneğin paylaşılmayan telefon görüşmelerinde veya kendi hazırlık oturumlarınızda, SubcueAI'nin overlay'i cihazınızda yerel kalır ve görüşmeye hiçbir bot katılmaz.