Karşılaşabileceğiniz JavaScript Mülakat Soruları

Yazan: Aaron Cao · Güncellendi

Karşılaşabileceğiniz JavaScript Mülakat Soruları
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.

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:

  • debounce ve throttle uygulayı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.all yazı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.

SSS

JavaScript mülakatları sadece LeetCode sorularından mı ibaret?

Genellikle hayır. Genel algoritma soruları da çıkar, ama JavaScript'e özgü turlar closures, event loop ve this binding gibi dil mekaniklerine, artı debounce veya bir event emitter gibi küçük pratik uygulamalara dayanır.

Junior bir geliştirici önce neye odaklanmalı?

Scoping, closures, dizi metotları ve == ile === arasındaki farkı net şekilde açıklamak. Junior'lar, generator veya proxy gibi eksik ileri düzey konulardan çok daha sık, sağlam olmayan temellerden dolayı ön eleme turlarında elenir.

Event loop'u basitçe nasıl açıklarım?

Tek cümlede: senkron kod call stack üzerinde çalışır, tamamlanan callback'ler queue'larda bekler ve her stack çalışmasından sonra engine, bir sonraki macrotask'ı (örneğin bir timer) almadan önce promise callback'leri gibi tüm microtask'ları boşaltır. Ardından bir log sırası örneğini adım adım anlatın.

JavaScript mülakatları TypeScript'i kapsıyor mu?

Takım onu kullanıyorsa, giderek daha fazla evet. Temel typing, union'lar, çalışma seviyesinde generics ve TypeScript'in runtime'da neyi garanti edip neyi etmediğine dair sorular bekleyin. Turu yine de JavaScript temelleri belirler.

İlgili sorular

← Daha fazlası: Rol ve konuya göre mülakat soruları