Javascript Mülakat Soruları ve Cevapları

Javascript Mülakat Soruları ve Cevapları

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.

1. JavaScript nedir?

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.

2. JavaScript'te veri tipleri nelerdir?

JavaScript'te, temel veri tipleri şunlardır: string, number, boolean, undefined ve null. Ayrıca, objeler de bir veri tipidir.

3. Değişken nedir ve nasıl tanımlanır?

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;

4. "var", "let" ve "const" arasındaki fark nedir?

"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.

5. Scope (kapsam) nedir ve JavaScript'te nasıl çalışır?

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.

6. JavaScript'te "this" anahtar kelimesi ne anlama gelir?

"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.

7. Callback fonksiyon nedir ve neden kullanılır?

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.

8. Asenkron programlama nedir ve neden kullanılır?

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.

9. Promise nedir ve nasıl çalışır?

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.

10. "Prototype" nedir ve nasıl kullanılır?

"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.

11. "Event bubbling" ve "event capturing" arasındaki fark nedir?

"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.

12. JavaScript'te "strict mode" nedir ve nasıl kullanılır?

"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.

Girl Eating Pizza

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

Girl Eating Pizza

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

Girl Eating Pizza

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

Girl Eating Pizza

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.

Girl Eating Pizza

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

Girl Eating Pizza

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

Girl Eating Pizza

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

Girl Eating Pizza

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

Girl Eating Pizza

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