JavaScript Mülakat Soruları: Temelden İleri Seviyeye – Part 9

JavaScript mülakat soruları part 9 öne çıkan görseli

JavaScript mülakat soruları serimizin 9. bölümünden merhabalar. 80 soruyu geride bıraktığımız serimiz devam ediyor. Kademeli bir şekilde ilerleyerek sorularımıza devam ediyoruz. JavaScript mülakat soruları serimizin diğer bölümlerine bu kategoriden ulaşabilirsiniz. En son 80. soruyu tamamlamıştık. Şimdi 81. sorudan devam edelim.


SORU 81

const doctors = ["Serhat", "Ekrem", "Salim", "Veli", "Ali"];

const [firstDoc, secondDoc] = doctors;

console.log(firstDoc, secondDoc);

Burada dizi parçalama dediğimiz durum var. const [firstDoc, secondDoc] = doctors; ifadesi doctors dizisinin 0. ve 1. indeksinde yer alan ögeleri alır. Daha sonra bunları firstDoc ve secondDoc değişkenlerine atar. 0. ve 1. indekste yer alan ögeler “Serhat” ve “Ekrem” olduğundan konsolda Serhat Ekrem çıktısını görürüz. Bu sonuç bir string veri tipidir.

SORU 82

const teams = ["Real Madrid", "Liverpool", "Inter", "Galatasaray"];

const [, theChosen] = teams;

console.log(theChosen);

Burada da yine dizi parçalama karşımıza çıkıyor ancak ince bir ayrıntı var. const [, theChosen] = teams; ifadesinde virgülden önce hiçbir değişken ismi belirlenmemesine karşın parçalamaya dahildir. Yani “,” (boş değişken) ifadesi teams dizisinin 0. indeksindeki elemanı alacaktır. theChosen ise 1. indeksindeki elemanı alacaktır. Boş değişkene değer atanamayacağı için konsolda Liverpool çıktısını görürüz.

SORU 83

let person = {name: "Sadi"};

let personsEd = {school: "Cambridge"};

person = {...person, ...personsEd};

console.log(person);

Burada ilk defa karşımıza çıkan spread (yayma) operatörü var. Spread operatörü iki nesnelerin/dizilerin içindeki ögeleri alır, kopyalar ve yeni bir dizi haline getirir. Burada person nesnesinin içindeki name: “Sadi” özelliği ve personsEd nesnesinin içindeki school: “Cambridge” özelliği kopyalanarak person nesnesine aktarılıyor. Bu durumda person nesnesi bu iki özelliği alarak sonucu döndürür. Konsolda {name: ‘Sadi’, school: ‘Cambridge’} çıktısını görürüz.

SORU 84

let person2 = {name: "Kamil"};

let personsInfo = {city: "Boston", name: "Mükremin"};

person2 = {...person2, ...personsInfo };

console.log(person2);

Üstteki ile benzer bir soru ancak dikkat etmemiz gereken nokta name keyi. Burada yine benzer şekilde person2 ve personsInfo nesnelerinin içindeki özellikler kopyalanarak person2 nesnesine eklenmiş. Ancak name özelliği hem person2 nesnesinde hem de personsInfo nesnesinde var. Bu durumda iki key değeri aynı ise en sonuncu key değeri geçerli olur. Bu durumda name olarak “Mükremin” stringi alınacaktır. Sonuç olarak konsolda {name: ‘Mükremin’, city: ‘Boston’} çıktısını görürüz.

SORU 85

let world = {country: "Bolivya"};

delete world.country;

console.log(world);

world nesnemizi belirledik ve ardından da delete world.country; ifadesiyle içindeki özelliği sildik. Yani country: “Bolivya” key:value çiftini silmiş olduk. Sonuç olarak konsolda {} (Boş nesne) çıktısını alırız.

SORU 86

let member = {
name: "Hakkı",

welcome(){
let arrowFunc = () => console.log(this.name);
arrowFunc();
}
};

member.welcome();

member adında bir nesnemiz var. Bu nesnemizin name özelliğini “Hakkı” olarak, welcome() özelliğini ise bir fonksiyon olarak belirledik.

Burada ilk defa this anahtar kelimesi karşımıza çıkıyor. Kısaca açıklamak gerekirse this anahtar kelimesini bir yere referans vermek için kullanırız. Burada welcome fonksiyonu içinde arrowFunc adında bir ok fonksiyonumuz var ve bu fonksiyon member nesnemizin içindeki name özelliğine atıfta bulunuyor. Ok fonksiyonlarında this anahtar kelimesini kullanırsak, referans olarak yerel kapsamdaki öge alınır. Burada name, member nesnesinin yerel kapsamında belirlenen bir özellik olduğu için referans olarak alınır. Dolayısıyla konsolda Hakkı stringini görürüz.

SORU 87

let person1= {name: "Hayrullah"};

let person2;

person2 = person1;

person1.name = "Sadullah";

console.log(person2.name);

person1 nesnemizi belirledik ancak person2 değişkenimizin değerini belirlemediğimiz için şu anda undefined. Ardından person1 değişkenimizin değerini person2 değişkenimize eşitledik. Bu yüzden artık person2 değişkeninin değeri (referans noktası) artık person1 ile aynı. Hemen alttaki person1.name = "Sadullah"; ifadesiyle person1 nesnemizin içindeki name key’inin (Yani Hayrullah’ın) değerini Sadullah stringiyle değiştirdik. Sonuç olarak konsolda Sadullah stringini görürüz.

SORU 88

let nums = (11, 51, 91);

console.log(nums);

Fark ettiyseniz nums değişkenimiz ne bir dizi ne de bir nesne. Yalnızca parantez içinde virgülle ayrılmış sayılar görüyoruz. JavaScript’te virgül operatörü sağdan sola doğru tüm değerleri gezer ve en sonuncu değeri döndürür. Dolayısıyla burada 91 çıktısını alırız.

SORU 89

let math = (11, 7-2) * 6;

console.log(math);

Bir önceki soruda olduğu gibi parantez içinde virgülle ayrılmış değerlerin en sonuncusu döner. Bu yüzden 7-2’den 5 çıkar parantez içinden. 5 * 6 işlemini yaparız ve sonuç olarak konsolda 30 görürüz.

SORU 90

let studentName = {name: "Cemile"};

let studentSurname = {surname: "KAÇAR"};

const student = Object.assign(studentName, studentSurname);

console.log(student);

Nesne atama operatörü (Object.assign) yapısı karşımıza çıkıyor burada. studentName ve studentSurname adlı iki nesnemiz var ve bu nesneleri Object.assign ile student adlı başka bir nesneye kopyalıyoruz. Bu durumda student nesnemiz {name: ‘Cemile’, surname: ‘KAÇAR’} çıktısını verir.


JavaScript mülakat soruları serimizin 9. bölümünün sonuna geldik. 10. bölümde görüşmek dileğiyle. İyi çalışmalar.

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top