yoklateknik mülakat

Frontend Javascript Prototypes Oop Mülakat Soruları

75 doğrulanmış Frontend Javascript Prototypes Oop mülakat sorusu — cevaplarıyla çöz, açıklamalarıyla öğren, gerçek simülasyonda kendini test et.

Gerçek simülasyonu dene →

Örnek sorular

Javascript Prototypes OopZorluk 1
{} gibi düz bir nesne literal'inin varsayılan prototype'ı nedir?
  • aFunction.prototype
  • bObject.prototype
  • cArray.prototype
  • dnull, çünkü nesne literal'leri prototype'sız başlar
Açıklama:Her nesne literal'i örtük olarak new Object() ile oluşturulmuş gibi davranır, bu yüzden içteki [[Prototype]]Object.prototype'ı gösterir — toString, hasOwnProperty gibi metodlar buradan gelir. Yalnızca Object.create(null) prototype'sız bir nesne üretir (d).
Javascript Prototypes OopZorluk 1
function Animal(name) {
  this.name = name;
}
Animal.prototype.speak = function () {
  return this.name + ' makes a noise.';
};
const dog = new Animal('Rex');
console.log(dog.speak());

Bu ne yazdırır?
  • aRex makes a noise.
  • bundefined makes a noise.
  • cTypeError: dog.speak is not a function
  • dmakes a noise.
Açıklama:new Animal('Rex'), yeni örnek üzerinde this.name = 'Rex' atar; speak ise prototype zincirinde yukarı çıkılıp Animal.prototype'da bulunur. dog.speak() çağrısı this'i dog'a bağlar, dolayısıyla this.name 'Rex''tir.
Javascript Prototypes OopZorluk 1
Object.create(proto) ne yapar?
  • aPrototype'ı proto olan yeni bir nesne oluşturur
  • bproto'nun tüm özelliklerini yepyeni düz bir nesneye kopyalar
  • cproto'yu dondurup aynı referansı döndürür
  • dproto'yu extend eden yeni bir class tanımlar
Açıklama:Object.create(proto), içteki [[Prototype]]proto olarak ayarlanmış taze bir nesne döndürür — özellikleri kopyalamaz, bağlar. Yeni nesnede bulunamayan aramalar proto'ya düşer.
Javascript Prototypes OopZorluk 2
const obj = {
  value: 42,
  getValue: function () { return this.value; },
};
const fn = obj.getValue;
console.log(fn());

Bunun düz (non-strict) bir script olarak çalıştığını varsay. Ne yazdırılır?
  • a42
  • bundefined
  • cTypeError: Cannot read properties of undefined
  • dReferenceError: value is not defined
Açıklama:fn, hiçbir alıcı (receiver) olmadan çağrılır; non-strict modda this global nesneye düşer ve onda value özelliği yoktur — this.value hata değil undefined'dır. Strict modda ise this undefined olacağından bunun yerine (c) fırlatılırdı.
Javascript Prototypes OopZorluk 2
const obj = {
  value: 10,
  regular: function () {
    return (() => this.value)();
  },
};
console.log(obj.regular());

Ne yazdırılır?
  • a10
  • bundefined
  • cTypeError
  • dNaN
Açıklama:Arrow fonksiyonların kendi this'i yoktur — this'i sözlüksel (lexical) olarak sarmalayan scope'tan alırlar. Arrow, regular'ın içinde tanımlı, dolayısıyla this'i regular'ın this'i neyse odur; bu da obj.regular() çağrısı olduğu için obj'dir. Yani this.value 10'dur.
Javascript Prototypes OopZorluk 2
function sum(a, b) {
  return this.base + a + b;
}
console.log(sum.call({ base: 100 }, 1, 2));

Ne yazdırılır?
  • a3
  • bNaN
  • cTypeError
  • d103
Açıklama:Function.prototype.call, sumthis'i açıkça { base: 100 } olarak ayarlayarak, kalan argümanları da tek tek (1, 2) geçirerek çağırır. Sonuç 100 + 1 + 2 = 103'tür.

2925 soruluk Frontend bankasında kendini sına.

Mülakata başla