yoklateknik mülakat

React Native Mobil Mülakat Soruları

450 doğrulanmış React Native Mobil mülakat sorusu — cevaplarıyla çöz, açıklamalarıyla öğren, gerçek simülasyonda kendini test et.

Gerçek simülasyonu dene →

Örnek sorular

Rn Javascript Typescript FundamentalsZorluk 1
Bir React Native ekran componentinde closure nedir?
  • aComponent unmount olduğunda otomatik çalışan bir fonksiyon.
  • bComponent'in props'unun ilk render'dan sonra hiç değişmeyen bir kopyası.
  • cTanımlandığı scope'taki değişkenlere, o scope'un çalışması bitmiş olsa bile erişimini koruyan fonksiyon.
  • dNative modülleri kullandıktan sonra kapatmak için özel bir React Native API'si.
Açıklama:Closure, bir fonksiyonun kendi çevresindeki lexical scope'a referanslarla birlikte paketlenmesidir. RN'de bir Button onPress callback'inin component fonksiyon gövdesinde tanımlı bir değişkeni hâlâ okuyabilmesinin sebebi budur.
Rn Javascript Typescript FundamentalsZorluk 2
const user = {
  name: 'Ada',
  greet: function () {
    return `Hi, ${this.name}`;
  },
};
const fn = user.greet;
fn();

fn() çağrısı ne döner (React Native/Hermes JS ortamında, strict interop bir kenara, this undefined'dır)?
  • a"Hi, Ada" döner, çünkü normal bir fonksiyonda this her zaman tanımlandığı objeyi işaret eder.
  • bHata fırlatır.
  • c"Hi, undefined" döner, çünkü this global objeye dönüşür ve name global bir değişken değildir.
  • d"Hi, " boş string döner, çünkü Hermes çözülemeyen this özelliklerini boş string'e varsayılan yapar.
Açıklama:Normal fonksiyonlarda this, fonksiyonun nerede tanımlandığına değil nasıl çağrıldığına göre belirlenir. user.greet'i fn'e atayıp fn() olarak çağırmak onu düz bir fonksiyon çağrısı yapar; Hermes/strict ES module kodunda this undefined olur ve this.name erişimi TypeError fırlatır.
Rn Javascript Typescript FundamentalsZorluk 2
console.log('start');
setTimeout(() => console.log('timeout'), 0);
Promise.resolve().then(() => console.log('promise'));
console.log('end');

Log sırası nedir?
  • astart, end, promise, timeout
  • bstart, end, timeout, promise
  • cstart, promise, timeout, end — çünkü promise'ler senkron kod bitmeden önce her zaman çalışır.
  • dstart, timeout, promise, end
Açıklama:Senkron kod önce çalışır (start, end). Ardından microtask kuyruğu (Promise callback'leri), macrotask kuyruğu (setTimeout callback'leri) çalışmadan önce boşaltılır, bu yüzden promise timeout'tan önce loglanır.
Rn Javascript Typescript FundamentalsZorluk 1
const arr = [1, 2, 3]; arr.map(x => x * 2) yazdığınızda, Array.prototype map'i doğrudan arr'ın kendisinde tanımlamıyorsa arr.map nasıl çözülür?
  • aÇözülmez; map'in JS motoru tarafından oluşturma anında her array instance'ına manuel olarak kopyalanması gerekir.
  • bMotor, arr'dan Array.prototype'a kadar prototype chain'de yukarı doğru yürür, map orada bulunur ve kullanılır.
  • cReact Native'in Hermes motoru map'i tipten bağımsız olarak her değişkene global şekilde enjekte eder.
  • dTypeScript derleyicisi map'in implementasyonunu build zamanında derlenmiş JS'e doğrudan inline eder.
Açıklama:JS objelerinin (array'ler dahil) dahili bir [[Prototype]] bağlantısı vardır. Property/method arama bu zinciri, property bulunana ya da null'a ulaşılana kadar yukarı doğru yürür. arr'ın prototype'ı Array.prototype'dır ve map'i orada tanımlar.
Rn Javascript Typescript FundamentalsZorluk 2
function wrapInArray<T>(value: T): T[] {
  return [value];
}
const result = wrapInArray(42);

result'ın çıkarımlanan (inferred) tipi nedir?
  • aany[], çünkü TypeScript fonksiyon argümanlarından generic tip çıkaramaz.
  • bTam olarak T[], çünkü bir tip annotation'ı eklenene kadar T bir placeholder olarak kalır.
  • cunknown[], çünkü call site bir primitive sağladığında generic'ler unknown'a varsayılan olur.
  • dnumber[], çünkü TypeScript 42 argümanından T'yi number olarak çıkarır.
Açıklama:TypeScript, çağrı argümanlarından generic tip çıkarımı yapar: 42 geçirmek T'nin number olarak çözülmesini sağlar, dolayısıyla dönüş tipi T[], number[] olur.
Rn Javascript Typescript FundamentalsZorluk 2
async function loadProfile() {
  const res = await fetch('/api/profile');
  const data = await res.json();
  return data.name;
}

loadProfile() çağrısı gerçekte ne döner?
  • adata.name'in string değerini doğrudan, senkron olarak.
  • bundefined, çünkü async fonksiyonlar değer döndüremez, sadece side effect üretebilir.
  • cdata.name'i saran bir fetch response objesi.
  • ddata.name'in değerine resolve olan bir Promise.
Açıklama:Bir async fonksiyon, gövdesi ne return ederse etsin her zaman bir Promise döner. Çağıranların resolve olmuş name değerine erişmek için await loadProfile() ya da .then(...) kullanması gerekir.

2400 soruluk Mobil bankasında kendini sına.

Mülakata başla