Sobes.tech

Frontend

/** * Belirtilen milisaniye kadar "uyuyan" ve sonra başarıyla tamamlanan bir asenkron fonksiyon yazmak gerekir * / function sleep(duration) { } // Örnek const startTime = Date.now(); console.log("uyku başlıyor..."); sleep(2000).then(() => { console.log("2 saniye sonra uyandı!"); console.log("Geçen zaman: ", Date.now() - startTime); }); sleep(1000).then(() => { console.log("1 saniye sonra uyandı!"); console.log("Geçen zaman: ", Date.now() - startTime); });

139

Verilen senkron bir fonksiyon ve milisaniye cinsinden bir zaman. Bu fonksiyonun, belirli süreyle sınırlı yeni bir versiyonunu döndürmek gerekiyor. Eğer fonksiyon belirlenen süre içinde çalışırsa, söz promise ile alınan verilerle çözülür. Eğer çalışmazsa, promise 'time limit exceeded' dizesiyle reddedilir.

139

Yerleşik nesne prototiplerine yeni yöntemler eklemede sorunlar var mı?

139

runOnce çözümünde apply yöntemi neden gerekebilir?

137

/** * sumPromises fonksiyonunu uygulayın, bu fonksiyon * sözleri argüman olarak alır ve sonuçlarının toplamını döner. * * fonksiyon herhangi bir sayıda argüman alabilir. * Herhangi bir promise API'si kullanılabilir. */ // Kod burada // Kullanım örneği const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); sumPromises(promise1, promise2).then(console.log); // 3

136

/** * `asyncAuth(callback)` fonksiyonu, içinde hata (birinci argüman) ve * backend'den veriler (ikinci argüman) geçilebilecek bir callback kabul eder. * asyncAuth((error, data) => {}); * * `auth()` fonksiyonunu uygulamanız gerekiyor, * bu fonksiyon `asyncAuth()`'u çağırır, ancak Promise döner. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * `tryAuth()` fonksiyonu, `auth()`'u kullanır ve hata durumunda, * N ek deneme yapar. * Tüm denemeler başarısız olursa, son hatayı döner. * * @returns {Promise} */ function tryAuth(n) { }

135

[isim] sordu: Oyuncunun MVP sürümünü uygulaması ne kadar sürdü?

135

/** * runOnce adlı sarmalayıcı fonksiyonu uygulayın, bu fonksiyon * bir fonksiyon alır ve yeni bir fonksiyon döndürür. Yeni fonksiyon * yalnızca bir kez çağrılabilir, sonraki tüm çağrılar * undefined döner. * * Sarılmış fonksiyon argümanlar alabilir * ve sonuç döndürebilir. */ function runOnce(fn) { // kodunuz } const logHello = (name) => { console.log(`merhaba, ${name}!`) }; const logHelloOnce = runOnce(logHello); console.clear(); logHelloOnce('Oleg'); // 'merhaba, Oleg!' logHelloOnce('Olga'); // undefined

134

/* Bir dizideki tüm sayısal değerlerin toplamını hesaplamak için bir fonksiyon yazmak gerekiyor. Geçerli sayısal değerler, rakamlarla başlayan dizeler de dahil olmak üzere, başlangıçta rakamlarla başlayan dizeler de dahil olmak üzere, dizideki herhangi bir veri tipi olabilir ve düz olmayan bir yapı olabilir. **Yerleşik yöntemler olan .flat, .flatMap kullanılamaz** */ function sum(arr) { // ... } console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]]));

132

Yazılan kodda ES6 standardından hangi yenilikler kullanılıyor? arguments nesnesi nedir ve rest parametrelerinden nasıl farklıdır?

130

Arguments'ı eski yöntemle (ES5) diziye nasıl dönüştürürüz, Array.from ve spread operatörü olmadan?

130

Projede kullandığınız mimari yaklaşımlar hakkında bilgi verebilir misiniz? Feature-Sliced Design (FSD) ile tanıyor musunuz?

129

[isim] sordu: Belirli bir görev üzerindeki çalışma nasıl genel olarak organize edildi: kim getirdi ve hazırladı, onay süreci nasıldı, uygulama sırasında hangi sorular ortaya çıktı ve bunları nasıl çözdünüz?

128

Callback arayüzü olan ve Promise döndüren asyncAuth fonksiyonunu uygulayın. Ardından, asyncAuth'u kullanan ve hata durumunda n ek deneme yapan tryAuth(n) fonksiyonunu uygulayın. Tüm denemeler başarısız olursa, son hatayı döndürür.

128

/** * Üç kod bölümü verilmiştir. Her bir console.log'un sonucunu yazmanız gerekir. */ var n = 1; function F(n) { n = 3; } F(n); console.log(n); var obj = { a: 1 }; function F1(o) { o.a = 5; } F1(obj); console.log(obj); var obj = { a: 1 }; function F2(o) { o = { hello: 1 }; } F2(obj); console.log(obj);

127

/** * `asyncAuth(callback)` fonksiyonu, içinde * bir hata (birinci argüman olarak) ve backend'den veriler * (ikinci argüman olarak) geçebilecek bir callback kabul eder. * asyncAuth((error, data) => {}); * * `auth()` fonksiyonunu uygulamanız gerekiyor, * bu fonksiyon `asyncAuth()`'u çağırır, ancak Promise döner. * * @returns {Promise} */ function auth() { // asyncAuth((error, data) => {}); } /** * `tryAuth()` fonksiyonu, `auth()`'u kullanır ve hata durumunda, * N ek deneme yapar. * Tüm denemeler başarısız olursa, son hatayı döner. * * @returns {Promise} */ function tryAuth(n) { }

126

withTimeout fonksiyonunu uygulayın, bu fonksiyon bir fonksiyon ve zaman (milisaniye) alır ve yeni bir fonksiyon döner. Eğer orijinal fonksiyon belirlenen sürede çalışmazsa, söz promise reddedilmelidir.

126

Fonksiyon başarılı bir şekilde tamamlandıktan sonra zaman aşımını temizlemezsek ne olur? Bunu nasıl düzeltebiliriz ve her durumda (başarı ve hata) zaman aşımını temizlemek için hangi promise yöntemi uygundur?

126

[isim] sordu: Hangi test çerçevesi kullanıldı?

125

Bağlantı oluşturma hızı ve ortalama oturum süresi biliniyorsa, maksimum aynı anda canlı WebSocket bağlantısı sayısı nasıl hesaplanır?

120
/7