JavaScript mülakatları genellikle adayların dilin temel kavramlarını, işlevleri, obje yönelimli programlama, asenkron programlama ve diğer ilgili konuları anlayıp anlamadığını ölçmek için kullanılır. Aşağıda, JavaScript mülakatlarında sıkça sorulan sorular ve cevapları bulunmaktadır.
JavaScript, web tarayıcıları üzerinde çalışabilen, nesne yönelimli, hafif bir programlama dilidir. JavaScript, HTML ve CSS ile birlikte web sayfalarının dinamik özelliklerini sağlamak için kullanılır.
JavaScript'te, temel veri tipleri şunlardır: string, number, boolean, undefined ve null. Ayrıca, objeler de bir veri tipidir.
Değişkenler, verileri depolamak için kullanılır. JavaScript'te değişkenler, "var", "let" veya "const" anahtar kelimeleriyle tanımlanır.
Örneğin:
var sayi = 10;
let metin = "Merhaba";
const PI = 3.14;
"var", eski bir değişken tanımlama yöntemidir. "let" ve "const" ise ECMAScript 6 (ES6) ile birlikte tanıtıldı. "let" ve "const", blok kapsamına sahiptirler ve "let" değişkeni değiştirilebilirken "const" sabittir.
Kapsam, değişkenlerin nerede tanımlandığına ve erişilebilir olduğuna dair kuralları belirleyen bir kavramdır. JavaScript'te, iki tür kapsam vardır: global kapsam ve yerel kapsam.
Global kapsamda tanımlanan değişkenler, tüm kodda erişilebilirdir. Yerel kapsamda tanımlanan değişkenler ise, sadece tanımlandıkları işlevin içinde erişilebilirler.
"this" anahtar kelimesi, bir fonksiyonun çağrıldığı bağlama referans verir. Bu bağlama referansı, çağıran nesne olabilir ya da fonksiyonun içinde belirtilen bir bağlama referansı olabilir.
Callback fonksiyonlar, bir işlevin başka bir işlev içinde çağrılmasıdır. Bu, asenkron programlama için önemlidir, çünkü bir işlevin sonucu tamamlanmadan önce diğer işlevlerin çalışması gerektiğinde kullanılabilir. Örneğin, bir dosya indirme işlemi tamamlandığında bir mesaj göstermek için bir callback fonksiyonu kullanabilirsiniz.
Asenkron programlama, bir işlemin tamamlanmasını beklerken diğer işlemlerin devam etmesine izin veren bir programlama tekniğidir. Bu, uzun süren işlemler için özellikle yararlıdır ve kullanıcı arayüzü etkileşimleri gibi anlık geri bildirim gerektiren durumlarda önemlidir.
Promise, JavaScript'te asenkron programlama yapmak için kullanılan bir yapıdır. Promise, bir işlevin sonucunu tutar ve sonuç hazır olduğunda bir işlevi çağırmak için kullanılır. Promise, "pending" (beklemede), "fulfilled" (tamamlandı) veya "rejected" (reddedildi) durumlarından birinde olabilir.
Promise, genellikle XMLHttpRequest gibi asenkron işlemlerde kullanılır. İşlem başlatıldığında, Promise beklemeye alınır ve işlem tamamlandığında "fulfilled" durumuna geçer ve sonucu döndürür. Ancak, işlem sırasında hata meydana gelirse "rejected" durumuna geçer ve hata nedeniyle işlem sonlandırılır.
Promise, iki parametre alan bir işlevle oluşturulur: biri işlemi tamamlama durumunda çağrılacak olan "resolve" işlevi, diğeri ise hata durumunda çağrılacak olan "reject" işlevi. Örneğin:
let dosyaIndir = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve("Dosya başarıyla indirildi.");
}, 3000);
});
dosyaIndir.then(function(result) {
console.log(result);
}).catch(function(error) {
console.log(error);
});
Bu örnekte, "dosyaIndir" adlı bir Promise oluşturuldu. İşlev, "resolve" işleviyle sonlandırıldığında, "then" yöntemiyle sonuç işlenir ve "console.log" yöntemiyle görüntülenir. Eğer işlem hata verirse, "catch" yöntemiyle hata yakalanır ve "console.log" yöntemiyle görüntülenir.
"Prototype", JavaScript'te nesne tabanlı programlamada kullanılan bir özelliktir. Bir nesnenin "prototype" özelliği, o nesnenin özelliklerinin, metotlarının ve davranışlarının miras alındığı nesneyi gösterir. "Prototype" özelliği, nesne yaratılırken tanımlanabilir veya bir fonksiyonun "prototype" özelliği olarak tanımlanabilir.
"Event bubbling", bir olayın önce en içteki elemanlarda işlenmesi ve ardından dışa doğru yayılmasıdır. "Event capturing" ise olayın en dıştaki elemandan başlayarak içe doğru hareket etmesidir. Bu, DOM ağacındaki elemanlar arasındaki olay işleme yöntemlerinden biridir.
"Strict mode" (katı mod), ECMAScript 5 ile birlikte tanıtılan bir JavaScript özelliğidir. Bu mod, kodun belirli bir standartta çalışmasını sağlayarak, hatalı kullanımları engeller ve güvenliği arttırır."Strict mode" özelliği, kodun en üstünde use strict ifadesi ile etkinleştirilir.
Örneğin:
"use strict";
// kodunuz burada
Bu ifade eklenerek, kodunuzun "strict mode" içinde çalıştırılacağı belirtilir.
"Strict mode" ile birlikte, bazı özelliklerin kullanımı da kısıtlanır veya tamamen yasaklanır. Örneğin, değişkenlerin tanımlanması için "var" yerine "let" veya "const" kullanılması önerilir ve "eval()" fonksiyonu gibi bazı özelliklerin kullanımı yasaklanır.
"Strict mode", kodun daha güvenli ve hatasız çalışmasını sağlayarak, yazılım geliştirme sürecini kolaylaştırır. Bu nedenle, modern JavaScript projelerinde sıklıkla kullanılan bir özelliktir.
If you're preparing for a senior Node.js developer position, it's important to be ready for technical interview questions that will test your knowledge of Node.js and its related technologies. In this
As a JavaScript developer, it's essential to have a solid understanding of the language and its various concepts. In this article, we will provide some common interview questions and their answers to
Frontend development is an essential part of web development that focuses on building the user interface of a website or application. Frontend developers are responsible for creating visually appealin
Understanding how `this` works in JavaScript is essential for any developer working with the language. In this article, we will explore what `this` is, how it works, and common use cases.
Event delegation is a concept in JavaScript that allows developers to handle events efficiently and improve the performance of web applications. In this article, we will explore what event delegation
JavaScript is a powerful programming language that allows developers to create complex web applications. One of the most important concepts in JavaScript is the ability to handle asynchronous code. In
As web applications become more complex, the size of the JavaScript bundles that are required to run them can become unwieldy. This can lead to slow load times and poor user experiences, particularly
Managing state in a complex application can be a daunting task, but Redux can help simplify the process. Redux is a popular library for managing state in JavaScript applications, and it can be used wi
React is a popular JavaScript library for building user interfaces. One of the key features that sets React apart from other libraries is its use of a virtual DOM. In this article, we will explore wha