Teknik görüşmeler için hazırlık yapmak, özellikle yeni geliştiriciler için (ve bir pandemi sırasında daha az değil!) Stresli olabilir. Neyse ki, çocukken okulda dizin kartlarıyla yaptığımız gibi, çalışılabilen ve hafızaya bağlanabilen, tekrar eden sayıda anahtar kavram sorusu var gibi görünüyor. Başlamanıza yardımcı olmak için, işte bugün öğrenebileceğiniz ve pratik yapmaya başlayabileceğiniz JavaScript teknik röportajları için 8 genel soru.
var,
constve
let?
Var,
constVe
letsen beyan ve ad değişkenleri için izin JavaScript'teki kelimeleri saklıdır. ES6'dan önce,
varbunu yapmak için tek seçenekti
constve
let2015'te tanıtıldı.
Varherhangi bir kapsamda (global, fonksiyon veya blok) bir değişken tanımlamanıza izin verir, kaldırılır (aşağıda daha fazla açıklanmıştır) ve 'tanımsız' bir değerle başlatılır, bu değişkene kodun herhangi bir noktasına hata atmadan erişilmesine izin verir. Bu nedenle, hiç değeri olmayan bir değişken de bildirebilirsiniz ve bu yine de sorun olmaz. İle
var, bu değişkenin değerini yeniden atayabilir veya yeniden bildirebilirsiniz.
Let
varherhangi bir noktada değeri yeniden atamanıza veya yeniden beyan etmenize izin vermesi açısından çok benzerdir ve bir değişkeni değer olmadan adlandırabilirsiniz. Bunun aksine
var,
letdeğişkenle birlikte yalnızca çalıştırma anında değerlendirilir, bu nedenle değişken kodda yazılmadan önce referans alınırsa bir hata alırız. Ayrıca
let.
İle
constbir değişken her zaman bir değerle başlatılmalıdır ve bu değer asla değiştirilemez veya yeniden bildirilemez. Bunlardan birini yapmaya çalışırsanız, hemen bir hata atılır.
Constgibi herhangi bir kapsamda (genel dahil) bir değişken bildirmek için kullanılabilir
var.
Kaldırma, JavaScript'in derleme aşamasında gerçekleşir. İlk olarak, kod yukarıdan aşağıya okunur ve tüm global değişkenler ve fonksiyon isimleri hafızaya kaldırılır. Derlemeden sonra, yürütme aşamasında, yukarıda aslında kodda yazıldığı yerde bir değişken veya işleve başvurulursa, bellekte zaten mevcut olduğu için bir referans hatası atılmaz.
Fonksiyonel programlama tamamen saf fonksiyonlardan oluşur. Saf bir fonksiyon, aynı girdi için her seferinde aynı çıktıyı verecektir. Örneğin, 2 + 2 ekleyen bir toplama işlevi her zaman 4 döndürür.
Nesneye Yönelik Programlama, nesneler ve bunların birbirleriyle nasıl ilişkili oldukları etrafında merkezlenmiştir. Nesneler, verileri ve davranışı (işlevler veya yöntemler biçiminde) içerir ve genellikle gerçek dünya nesnelerine referansla oluşturulur. Nesneler ayrıca bir üst nesneden ek veri ve işlevleri devralabilir.
Klasik miras, bir sınıfın bir örneğinin o sınıfın ve diğer üst sınıfların işlevselliğini ve niteliklerini nasıl miras alacağını açıklar. Örneğin, bir Dog sınıfınız ve Dog sınıfını genişleten bir Husky sınıfınız varsa, oluşturulan tüm Husky örnekleri her iki sınıfın da işlevlerine ve özelliklerine sahip olabilir.
Prototypal kalıtımı, o orijinal veya ana nesnenin tüm örnekleri için mevcut olan yöntemleri miras alan nesnelere atıfta bulunur. Örneğin, tüm yeni dizilerde , veya
Array.prototypegibi kullanılabilir yöntemler olacaktır .
Array.reduce
Array.sort
Array.filter
==ve
===?
Kullanarak 2 farklı değeri karşılaştırmaya çalıştığınızda
===, bu 2 değerin değer VE veri türünde tam olarak aynı olup olmadığını sorarsınız . Veri türü eşleşiyor mu? Harf varsa, bunlar büyük veya küçük harfle mi eşleşiyor? Fazladan karakter veya boşluk var mı? Aynı görünen nesneleri karşılaştırmaya çalışırsanız, nesneler ayrı ayrı belleğe kaydedildiği için bu yine de yanlış döndürür ve bu nedenle aslında aynı olamazlar.
2 değeri kullanarak karşılaştırmaya çalışırsanız
==, veri türü sayılmadığından doğrulama daha gevşek bir şekilde değerlendirilir. Her iki taraftaki nesne değerleri de eşleşmeye zorlanabilir (örneğin, bir sayıya bir dizi) ve bu da potansiyel olarak beklenmedik bir sonuç sağlayabilir.
Normal işlevleri kullanırken (başka bir deyişle, ok işlevleri DEĞİL)
thisbağlam, onu çağıran nesneye aittir. Bazen, işlev kendisine
thisverilenden farklı bir bağlam beklerse, bu potansiyel olarak bir soruna neden olabilir . Aşağıdaki örnekte setTimeout, özniteliğine sahip olmayan öğesine
thisbaşvurmaya neden
Windowolmuştur
goodFriend.
Bunu
.bindaşmak için, bir nesneyi bir işleve özel olarak bağlamak için kullanabilirsiniz veya alternatif olarak ES6'da tanıtılan ok işlevlerini kullanabilirsiniz.
Kapanış, kapsamla ilgili bir JavaScript özelliğidir. İç içe geçmiş bir işlev, dış işlevin değişkenlerine ve kapsamına erişebilir, ancak bunun tersi olmaz.
Bu özellik, değişkenleri olması gereken yerde güvenli bir şekilde tutmaya ve potansiyel olarak hatalara yol açabilecek diğer nesneler tarafından erişilemez durumda tutmaya yardımcı olur.
Aşağıdaki işlevin çıktısı ne olacak?
Cevap olmalıdır:
1, 4, 3, 2. Bunun nedeni, bir işlevle karşılaştığında
setTimeout(ki bu bir web API'sidir), geri arama işlevini daha sonra bir kenara koyacak ve işlevin geri kalanını gerçekleştirmeye devam ederken milisaniye cinsinden (örn. 1000) sağlanan zamanlayıcıyı başlatacaktır. Bir kez
1ve
4(çalıştırılmak için, herhangi bir engelle sahiptir) konsolu kaydedilir olan
setTimeouten kısa gecikme ile geri arama (
3sonuncusu), ardından çağrı yığını için görev sırasından itilecektir (
2). Bu video , bu kavramın derinliklerine iniyor ve daha fazlasını açıklamak için harika bir iş çıkarıyor.
Bu kesinlikle olası JavaScript mülakat sorularının kapsamlı bir listesi değildir, ancak umarım bu size çalışırken başvurmak için iyi bir başlangıç noktası sağlar.
Bol şans, bunu aldın! 👍
Tarif Monorepo Hey! Ben Berkay Aydın, Jotform'da Mühendislik Direktörü ve Ön Uç Mimarıyım. Ön uç mimarimizi yeniden yapılandırırken öğrendiklerimi size anlatacağım.
Hey geliştiriciler, her şeyin doğru planlandığı ve uygulandığı ve sürümün sonunda sayfa Google'da 2. sayfada yer alan, büyüyen bir işletme için bundan daha kötüsü olamaz. Şimdi, bu tarihte herkes her şeyi Google'da araştırıyor ve ürününüzü Google arama sonuçlarının en üstüne çıkarmak, rekabette hayatta kalmak için çok önemli.
Gündem: Giriş: TL; Ama okuyabilirim: A / B testi, CloudFront ve Lamba @ edge hakkında zaten bilginiz varsa, AWS Lambda @ edge ile doğrudan A / B testine gidin. A / B testi nedir? A / B testi, kullanıcıların bir web sitesinin iki farklı versiyonunun katılımını karşılaştırmaya odaklanan bir UX araştırma metodolojisidir.
Bugün AppStore'daki birçok uygulama, tablo görünümünü kaydırırken içeriği tablo görünümü başlığındaki ölçekleme gibi davranışlara sahiptir. Bu tür davranışlara nasıl ulaşabileceğimizin en basit yaklaşımını size göstereceğim.
İlk blogumda söz verdiğim gibi 'DOM Nedir?' burada 'DOM işleme' üzerine bir blog var. Bu blogda DOM'a daha fazla dalacağız ve DOM işlemenin ne olduğunu ve nasıl yapıldığını öğreneceğiz.
Node.js'de akışların nasıl çalıştığını hiç merak ettiniz mi? Sahiptim.