En Popüler JavaScript Mülakat Soruları ve Cevapları

Anasayfa Kurumsal Blog En Popüler JavaScript Mülakat Soruları ve Cevapları

İş görüşmelerinde en sık sorulan JavaScript mülakat soruları ve cevapları neler?
JavaScript mülakatlarına girmeden önce sizin için hazırladığımız dünya genelinde sorulan JavaScript mülakat soruları ve cevaplarına hızlıca göz atabilirsiniz.

1990 yıllarının başında HTML diline destek olması için Netscape çalışanı Brendan Eich tarafından üretilen bir script yazılım dili olan JavaScript, 1997 yılından itibaren bir ECMA standardı olan JavaScript, günümüzde Mozilla Vakfı öncülüğünde özgür yazılım topluluğu tarafından geliştirilmekte ve bakımı yapılmaktadır.
JavaScript, çeşitli web uygulamaları oluşturmak için dünya çapında oldukça yaygın olarak kullanılmaktadır, bu da JavaScript öğrenenler için büyük fırsatlar olduğu anlamına gelir.

“JavaScript öğrenirken nasıl yol izlemeliyim?” sorusuna yanıt arıyorsanız, sizin için hazırladığımız JavaScript temel kaynaklar listesine göz atarak sıfırdan JavaScript öğrenmeye başlayabilirsiniz.

En Popüler JavaScript Mülakat Soruları ve Cevapları
???? JavaScript ‘in en temel özellikleri nelerdir ?
JavaScript, hem istemci tarafı hem de sunucu tarafı geliştirme için kullanılan en popüler web kodlama dilidir. Nesneye yönelik programlamayı destekleyen JavaScript, web tarayıcıları tarafından anlaşılabilen ve yürütülebilen HTML sayfalarına eklenebilir.

Nesne Tabanlı: Polimorfizmi, kapsüllemeyi ve bir seviyeye kadar kalıtımı destekleyen nesne tabanlı bir script dilidir.

Yorumlayıcı dil: Yorumlayıcı diller, kaynak kodlarını komut komut okuyup üzerinde çalışılan makinenin komut setine çevirerek çalıştıran bir programdır. Yorumlanarak çalıştırılan yüksek seviyeli diller doğrudan yorumlanmazlar. Genellikle Bytecode gibi bir ara forma derlenir ve bu kodlar yorumlanarak yerel makine diline çevrilerek işletilir.

JavaScript tarayıcıda çalışır: Google Chrome, Internet Explorer, Safari gibi tarayıcı üzerinde JavaScript’i çalıştırabilirsiniz.
JavaScript yalnızca tarayıcıda değil, sunucuda ve JavaScript Motoru olan herhangi bir cihazda da çalıştırılabilir.

Tarayıcılara göre kullanılan JavaScript Motorları:

Chrome — V8
Firefox — SpiderMonkey
IE — Chakra
Safari — JavaScriptCore
???? == ve === arasındaki fark nedir?
JavaScript 3 farklı değer karşılaştırması sunar:

Katı eşitlik karşılaştırması üç eşittir.
Soyut/zayıf eşitlik karşılaştırması iki eşittir.
ES2015 ile gelen Object.is
İki eşittir ve üç eşittir arasındaki en temel fark, tip ve değer karşılaştırmasıdır. Üç eşittir ile, iki değerin hem tipini hem de değerini karşılaştırırken iki eşittir ile değerlerin tiplerini eşitleyerek sadece değer karşılaştırması yapılır.
İki eşittir karşılaştırması, değerlerin tipini değiştirirken üç eşittir ise bu karşılaştırmayı tip değiştirmeden gerçekleştirir.
Object.is ise üç eşittir ile benzerlik gösterse de NaN ve -0 ile +0 arasındaki istisnai durumlarda true döner.


???? İşlev Bildirimi ile İşlev İfadesi arasındaki fark nedir?
JavaScript mülakat soruları arasında en popüler sorulardan biri de, işlev ifadesi ve işlev bildirimi arasındaki farktır.
İşlev bildirimi; function, benzersiz adını, parametrelerini ve işlev gövdesini kullanarak bir işlevi tanımlama işlemidir.
Bir değişkene bir işlev bildirimi atadığımızda, işlev ifadesi haline gelir.

Bir işlev ifadesinin işlev bildirimine karşı bir dezavantajı vardır, bildirilmeden önce çağrılırsa bir hata verecektir.

Örneğin;
İşlev ifadesi:
alert(foo()); // ERROR! foo wasn’t loaded yet var foo = function() { return 5; }

İşlev bildirimi:
alert(foo()); // Alerts 5. Declarations are loaded before any code can run. function foo() { return 5; }

???? null ve undefined anahtar kelimeler arasında fark var mı?
JavaScript bazı dillerden farklı olarak null ve undefined olarak iki ayrı durum kabul eder.

JavaScript’te undefined, bir değişkenin bildirildiği ancak henüz bir değer atanmamış olduğu anlamına gelir.

null ise bir atama değeridir, değişkene değersiz bir gösterim olarak atanabilir. typeof null bize nesne döndürür.


???? JavaScript’de for-in döngüsü nedir?
for-in döngüsü, özellikle adım adım olarak nesnenin tüm özellikleri döngü için tasarlamıştır. Her yinelemede nesneden bir özellik seçer ve üzerinde gerekli işlemleri gerçekleştirir.

???? JavaScript ve ECMA Script arasındaki fark nedir?
ECMAScript = ES:

ECMAScript, betik dilleri için bir standarttır.
JavaScript gibi diller ECMAScript standardını temel alır.
ECMA Standardı, en bilinen JavaScript (Netscape) ve JScript (Microsoft) olmak üzere çeşitli kaynak teknolojilerine dayanmaktadır.
ECMA, Avrupa Bilgisayar Üreticileri Birliği anlamına gelir.
JavaScript = JS:

JavaScript, ECMAScript Standardının en popüler uygulamasıdır.
Javascript’in temel özellikleri ECMAScript standardını temel alır fakat Javascript’in ECMA standardında olmayan başka ek özellikleri de bulunur.
ActionScript ve JScript, ECMAScript’i uygulayan diğer dillerdir.
Standartlaştırma için JavaScript ECMA’ya gönderildi ancak Javascript adındaki ticari marka sorunları nedeniyle standart ECMAScript olarak adlandırıldı.
Her tarayıcının bir JavaScript tercümanı vardır.

???? JavaScript kullanarak nasıl çerez oluşturabilirsiniz?
JavaScript mülakat soruları arasında en popüler sorulardan biri de, çerezlerin kullanımıdır.
Cookie, kullanıcının bilgisayarında web tarayıcılar aracılığıyla saklanan ve en fazla 4 KB boyutunda olan metin (txt) dosyalarıdır. Üyelik sistemi, kullanıcı şifresinin hatırlanması, alışveriş sitelerindeki sepet mantığı, kullanıcı hareketliliğinin ve tercihlerinin izlenmesi, sonrasında kullanıcıya daha alakalı sonuçların gösterilmesi gibi kullanıcı deneyimini arttıran faaliyetlerde sıklıkla kullanılır.

JavaScript cookie oluşturma, okuma ve silme işlemi için “document.cookie” özelliği kullanılır. Bu özellik, açılan web sayfasında tanımlı bütün çerezleri temsil eder.


???? JavaScript veri türleri nelerdir?
JavaScript tarafından desteklenen toplam 7 temel veri türü vardır. Bu değişken türleri içerisinde birçok veri tipi saklayabilir. Bu veri tiplerinden bazıları; sayısal, metin, mantıksal, dizeler ve objelerdir.

String Veri Tipi (Metin)

String veri tipi, metinsel ifadeleri saklar.
String veriler (“) tırnak işareti ya da (‘) kesme işareti kullanılarak ifade edilir.

Number Veri Tipi (Sayısal)

Numbers veri tipi, sayısal değerleri tutmak için kullanılır.
Değerler tanımlanırken (“) çift tırnak veya (‘) tek tırnak işaretine ihtiyaç duyulmaz.

Boolean Veri Tipi (Mantıksal)

Mantıksal veriler koşul gerektiren ifadeler için kullanılır.
İfadenin doğru veya yanlış olduğunu ifade eder.

Array Verisi(Dizi)

Dizi veri tipi, birden fazla değer içerir.
Dizi oluşturulurken köşeli parantez kullanılır ve içerisindeki değerler (,) ile ayrılır.

Veri İkilileri (Nesneler)

Nesneler alt değişken verilerini tutar. Alt değişkenler sıralanırken {} kullanılır. ve değişkenler virgül ile ayrılarak yazılır.

Boş ve Tanımsız Veriler ( Undefined & Null )

Değer içermeyen değişkenler veri içermezler.
Veri içermeyen değişken oluşturulurken var degişken seklinde oluşturulur. Sadece değişken ismi yazılır ve eşittir operatörü (=) kullanılmaz.

Bazı durumlarda değişkenin içerisinde bulunan verinin silinmesi gerekir. Bunun için Null ifadesi kullanılır.

Veri türü nasıl tespit edilir?
typeof operatörü kullanılarak bir değişkenin türü sorgulanabilir.

Değişkenin veri türü değiştirilir mi?

JavaScript veri türleri yeni değerler atanarak kolayca değiştirilebilir.

???? JavaScript’de this nedir?
JavaScript’te nesnelerin olduğu gibi fonksiyonların da aldığı özellikler bulunuyor. Bir fonksiyon çağırıldığında “this” özelliğini almakta, bu “this” ise fonksiyonu çağıran nesnemizin değeridir.

this, kullanıldığı yere ve fonksiyonun çağırılma şekline göre farklı değer içermekle birlikte her zaman bir nesneyi refer eder ve genellikle fonksiyon veya metod içinde kullanılır. Fonksiyon dışında yani global scope‘da da kullanılabilir ama dikkat edilmesi gereken konu; sınıfımızı strict mode’da çalıştırıyorsak “this”, undefined olacaktır.

⇒ This anahtar kelimesinin nesneler ile kullanımı

JavaScript’te this anahtar kelimesi ait olduğu nesneyi ifade eder.

⇒ This anahtar kelimesinin yalnız kullanımı

This anahtar kelimesi tek başına kullanıldığında, global nesneyi ifade eder. Bir tarayıcı penceresinde global nesne window nesnesidir.

⇒ This anahtar kelimesinin fonksiyon içerisinde kullanımı

This anahtar kelimesi fonksiyon içerisinde kullanıldığında, global nesneyi ifade eder. Bir tarayıcı penceresinde global nesne window nesnesidir.

⇒ This anahtar kelimesinin Html etiketi içerisinde kullanımı

This anahtar kelimesi Html etiketleri içerisinde kullanıldığında, ait olduğu Html öğesini ifade eder.

???? Zamanlayıcılar JavaScript’te nasıl çalışır?
Zamanlayıcılar, belirli bir zamanda bir kod parçasını çalıştırmak veya kodu belirli bir aralıkta tekrarlamak için kullanılır. Bu, setTimeout, setInterval ve clearInterval işlevleri kullanılarak yapılır .

SetTimeout (fonksiyon, gecikme) işlevi yukarıda bahsedilen bir gecikmeden sonra, belirli bir fonksiyonu çağıran bir zamanlayıcı başlatmak için kullanılır. SetInterval (fonksiyon, gecikme) yapılması ne zaman fonksiyon defalarca belirtilen gecikme sadece duraklamalara verilen işlevini yürütür. ClearInterval (id) işlevi durağına zamanlayıcı talimatını verir.

Zamanlayıcılar tek bir iş parçacığı içinde çalıştırılır ve bu nedenle olaylar kuyruğa girerek yürütülmeyi bekler.

???? ViewState ve SessionState arasındaki fark nedir?
ViewState, oturumdaki bir sayfaya özel olarak kullanılırken; SessionState, tüm web uygulaması sayfalarında erişilebilen kullanıcıya özel verilere özeldir.

???? 3 + 2 + “7” nin sonucu ne olur?
3 ve 2 tam sayı olduğu için sayısal olarak eklenecektir. Ve 7 bir dize olduğu için, birleştirme işlemi yapılacaktır. Böylece sonuç 57 olur.

???? Void (0) kullanımı nedir?
Sayfanın yenilenmesini önlemek için Void (0) kullanılır ve arama sırasında “sıfır” parametresi geçilir.

Void (0), sayfayı yenilemeden başka bir yöntemi çağırmak için kullanılır.

???? JavaScript’teki pop () yöntemi nedir?
pop() metodu dizinin son elemanını siler ve dizinin yapısını değiştirir. Aynı zamanda da diziden silinen elemanı döndürür.

pop() yöntemi, shift () yöntemine benzer.
Aralarındaki fark, shift yönteminin dizinin başlangıcında çalışmasıdır.
pop() metodu, verilen dizideki son öğeyi alır ve onu döndürür. Daha sonra çağrıldığı dizi değiştirilir.


???? JavaScript’te innerHTML kullanmanın dezavantajları nelerdir?
innetHTML, body kısmında yer alan bir HTML etiketinin içeriğini değiştirmemizi sağlar. innerHTML özelliği ile sayfanın istenen yerine HTML kodları ekleyebilriz.

JavaScript ile sayfaya HTML kodları eklerken, tırnak işaretlerini karıştırırsak sorun yaşarız. Bu nedenle çift tırnak içerisinde tekrar tırnak işareti kullanmamız gerekirse, içteki tırnak işaretlerini tek tırnak olarak yazmalıyız.

JavaScript’te innerHTML kullanmanın dezavantajları:

İçerik her yerde değiştirilir durumda olur.
+ = “İnnerHTML = innerHTML + ‘html'” gibi kullansanız bile, yine de eski içerik html ile değiştirilir
Tüm innerHTML içeriği yeniden ayrıştırılır ve öğeler halinde oluşturulur, bundan dolayı daha yavaştır.
İnnerHTML doğrulama sağlamaz ve bu nedenle muhtemelen belgeye geçerli ve bozuk HTML ekleyebilir ve onu kırabiliriz.
???? JavaScript’teki hata türleri nelerdir?
Üç tür hata vardır:

Yükleme zamanı hataları: Uygun olmayan sözdizimi hataları gibi bir web sayfası yüklenirken ortaya çıkan hatalar, Yükleme süresi hataları olarak bilinir ve hataları dinamik olarak oluşturur.

Çalışma zamanı hataları: Komutun HTML dili içinde kötüye kullanılması nedeniyle oluşan hatalar.

Mantıksal Hatalar: Farklı bir işlemle bir işlev üzerinde gerçekleştirilen kötü mantık nedeniyle oluşan hatalardır.

???? JavaScript’te ‘use strict’ nedir ve nasıl etkinleştirilebilir?
JavaScript use strict anahtar kelimesi kullanım amacı kodun katı kurallı olarak çalıştırılacağını belirtir. Katı kurallı kullanımda değişken oluşturulmadan kullanmaya izin verilmez.

JavaScript kodlarının katı kurallı olarak yorumlanması için kod veya fonksiyon başına “use strict”; yazmak yeterli olacaktır.

Katı kural tanımı kod başına yazılırsa tüm kodlar katı kurallı olarak çalışacaktır.

???? call (), bind () ve apply () arasındaki fark nedir?
this anahtar kelimesinin bazı durumlarda kullanımı ve hangi objeyi gösterdiğini anlamak her zaman bu kadar kolay olmayabilir. Böyle durumlarda veya bir fonksiyonu farklı objeler üzerinde kullanmak istediğimiz zamanlarda, JavaScript prototype objesinin içinde bulunan call,apply ve bind fonksiyonlarını kullanabiliriz.

Call ve Apply fonksiyonları Function objemizin __proto__ objesinde bulunan iki adet fonksiyondur. Bu fonksiyonların görevleri aynı olsa da kullanımları arasında ufak bir fark vardır.

Call() fonksiyonu, verilen this anahtar değeriyle(obje) ve bağımsız olarak sağlanan bağımsız argümanlarla bir fonksiyonu çağırır. Argümanlar fonksiyona tek tek gönderilir. (Örnek: test(obj,arg1,arg2,arg3))

Apply() fonksiyonu, verilen this anahtar değeriyle(obje) ve bağımsız olarak sağlanan değişkenlerle bir fonksiyonu çağırır. Argümanlar fonksiyona argüman listesi şeklinde gönderilir. (Örnek: test(obj,[arg1,arg2,arg3]))

Bind fonksiyonu da mantık olarak call ve apply fonksiyonlarına oldukça fazla benzer. Ancak kullanım olarak bu fonksiyonlardan farklıdır.

Bind() fonksiyonu, içine verilen objeye göre yeni bir fonksiyon kopyası yaratır. Oluşan bu kopya fonksiyonu daha sonradan argüman listesi ile beraber gönderilen objeye kullanabiliriz.

WhatsApp