Javascript ən çox soruşulan suallar və cavabları

Zöhrab Səmədzadə
10 min readNov 27, 2021

1) Sual: JSON nədir və onun ümumi əməliyyatları

Cavab: JSON JavaScript Obyekt Notasiyası üçün nəzərdə tutulmuşdur, məlumatların saxlanması və daşınması üçün yüngül formatdır, tez-tez verilənlər serverdən veb səhifəyə göndərildikdə istifadə olunur, JSON asan başa düşülür.

JSON-un ən çox bilinən operatorlarından biri Parsing və Stringification’dur.

Parsing(ayrıştırmaq, təhlil etmək): String’i native object(JS tərəfindən təmin edilən standart obyektdir)’ə çevirmək üçün istifadə olunur.

Stringification(string(mətn formatına)çevirmə): Native object’i string’ə çevirmək üçün istifadə olunur.

2) Sual: Slice və Splice metodları arasındakı fərqlər hansılardır:

Cavab: Slice() metodu seçilmiş element(ləri) array’da yeni array object kimi return edir. Orjinal array’i dəyişmir. Array’dan elementləri götürmək üçün istifadə olunur.

Splice() isə array’da silinmiş elementləri qaytarır. Orjinal array’i dəyişir. Array’dan elementləri silmək və ya array’a yeni elementlər əlavə etmək üçün istifadə olunur.

3) Sual: Letvar arasındakı fərq nədir?

Cavab: VarLet hər ikisi javascript-də dəyişən elanı üçün istifadə olunur, lakin onların arasındakı fərq var function scope’dur və let block scope’dur.

Var’da variables qaldırılır.

Let’də isə qaldırılır lakin işə salınmır.

4) Sual: Açar söz olaraq niyə Let’dən istifadə edirik?

Cavab: Çünki let block scope ilə local variable’ı təyin etmək üçün istifadə olunur və programlaşdırmada əsasən local variable təyin edildiyinə görə let daha məqsədəuyğundur.

5) Sual: Modul nədir?

Cavab: Modul özündə bir və ya bir neçə rutinləri daşıyan programın hissəsidir. Bir və ya bir neçə müstəqil hazırlanmış modul programı təşkil etdiyinə görə önəmlidir. Modul’lar proqramçıya proqram təminatının funksionallığının yalnız bir sahəsinə diqqət yetirməyə imkan verməklə proqramçının işini asanlaşdırır.

6) Sual: Modullardan istifadənin faydası nədir?

Cavab:

Modul əsas faydaları:

  1. Maintainability (Davamlılıq)
  2. Reusability (Yenidən istifadə oluna bilməsi)
  3. Namespacing (Ad boşluğu)

7) Sual: Niyə Modullara ehtiyac var?

Cavab: Modullardan istifadə edərək böyük programları kiçik idarə olunan fayllara bölmək olur və kodların reusable (yenidən istifadə)olunmasını təmin edir. Modul sayəsində ən çox istifadə olunan funksiyalarımızı təyin etmək daha asan və mümkün olar.

8) Sual: JS’də scope nədir?

Cavab: Scope variables’ın, funksiyaların və obyeklərin kod sahəsində görünməsini təmin edir.

9) Sual: Cookie nədir?

Cavab: Cookie, browser’in istifadə edə bilməsi üçün kompüterdə saxlanılan məlumatdır. Cookie veb server tərəfindən istifadəçinin sabit diskində mətn faylında saxlanılan kiçik məlumatdır və bu məlumat daha sonra həmin maşından məlumat almaq üçün veb brauzer tərəfindən istifadə olunur. Ümumiyyətlə Cookie müxtəlif veb səhifələr arasında əlaqə yaratmaq üçün istifadə olunan fərdiləşdirilmiş istifadəçi məlumatlarını və ya məlumatları özündə saxlayır.

10) Sual: Niyə Cookie’ə ehtiyacımız var

Cavab: Cookies istifadəçi haqqında məlumatı yadda saxlamaq üçün istifadə olunur. Əsasən 2 addımdan ibarət olur:

  1. İstifadəçi veb səhifəni ziyarət etdikdə istifadəçi profili Cookie’də saxlanıla bilər.
  2. İstifadəçi növbəti dəfə səhifəyə daxil olduqda, Cookie istifadəçi profilini xatırlayır.

11) Sual: Cookie’də hansı seçimlər var?

Cavab: Cookie üçün bir neçə seçim vardır.

1.Bunlardan məsələn browser bağlandıqda Cookie silinir lakin son istifadə tarixini dəyişməklə bu hərəkəti dəyişmək olar.

2.Default olaraq Cookie hazırki page’ə aid olur. Amma path parametrindən istifadə etməklə Cookie’nin hansı path’ə aid olduğunu göstərmək olar.

12) Sual: Cookie’ni necə silmək olar?

Cavab: Son istifadə tarixini keçmiş tarix kimi təyin etməklə silinə bilər və belə etdikdə spesifik bir Cookie value’ə ehtiyac yoxdur.

Note:Düzgün Cookie’ni silmək üçün Cookie yol seçimini təyin etmək lazımdır əks halda əksər browserlər Cookie’ni silməyə icazə vermir.

13) Sual: Web Storage(saxlama) nədir?

Cavab: Web Storage bəzən də DOM (Document Object Model) storage kimi də tanınır və müştəri tərəfinin məlumatları saxlamasını metodlar və protokollar ilə web programlar təmin edir. Web Storage müştəridə məlumatların saxlanması üçün iki mexanizm təqdim edir.

  1. Local Storage (Yerli Yaddaş): Son istifadə tarixi olmadan hazırki məlumatları saxlayır.

2. Session Storage (Sessiya yaddaşı): Yalnız 1 istifadəlik məlumatları saxlayır və həmin tab(page və ya nişan browser’dəki) bağlandıqda məlumatlar itirilir.

14) Sual: JS’də Strict mode nədir?

Cavab: Strict mode ECMAScript 5-də yeni funksiyadır ki bu da program və funksiyanı daha “ciddi” yazmağa imkan verir və istisnaları atır. “use strict”; kimi yazılır və browser’ə sərt JS kodundan istifadə etməyi tapşırır. Bu cür yazı tərzi sayəsində kodları daha güvənli yazmaq olur.

15) Sual: Niyə Strict mode’ə ehtiyac var?

Cavab: Strict mode sayəsində yazılan kodlar JS tərəfindən daha səliqəli və təhlükəsiz yazılmağa məcbur edir və JS engine tərəfindən kodların optimallaşması asanlaşır. JS’in əvvəlki versiyalarına görə narahat olmağa dəyməz çünki məhəl qoymayacaqlar.

16) Sual: Strict mode necə təyin edilir?

Cavab: Script’in və ya funksiyanın əvvəlinə “use strict” əlavə olunur və əgər script’in əvvəlinə əlavə olunarsa global scope’a aid olur.

Əgər funksiyanın içində yazılsa local scope’a aid olur.

17) Sual: Delete operatorunun məqsədi nədir?

Cavab: Delete operatoru həm property’ni həm də onun dəyərini silmək üçün istifadə olunur.

18) Sual: Typeof Operatoru nədir?

Cavab: Typeof operatorundan istifadə etməklə JS-dəki variable’ın tipini müəyyən etmək olar (Boolean, Number, String, undefined)

19) Sual: Undefined property nədir?

Cavab: Undefined hər hansı variable’a value təyin edilmədikdə və ya ümumiyyətlə o adda variable təyin olunmadıqda göstərilir.

Value’ni boş qoymaqla istənilən variable’ı undefined etmək olar.

20) Sual: Null value nədir?

Cavab: Null value hər hansı obyekt dəyəri olmadıqda ortaya çıxır. JS-in ən sadə və önəmli dəyərlərindəndir və typeof’u object’dir. Value’ni Null təyin etməklə variable’ı boşaltmaq olar.

21) Sual: NaN nədir?

Cavab: NaN (Not a Number) yəni ədəd deyil mənasındadır və boolean dəyəri false olaraq götürülür. Bu dəyəri bir çox yerdə görmək mümkündür.

22) Sual: Null və Undefined arasındakı fərqlər nələrdir?

Cavab:

Null:

  1. Null typeof’u objectdir.
  2. Null dəyəri 0-dır və ya sadəcə boş dəyərdir.
  3. Null + 1 (istənilən number ola bilər) cavabı 1 olacaq (Null + istənilən number = istənilən number).

Undefined:

  1. Undefined typeof’u undefined’dir.
  2. Undefined dəyəri undefined’dır yəni qeyri-müəyyən bu cavab isə ancaq hansısa proses zamanı əgər dəyər təyin edilməyibsə bu undefined olaraq göstəriləcək.
‘a is not defined’ və ya ‘a is undefined’ olaraq qarşımıza çıxacaqdır.

3. Undefined + 1 (istənilən number ola bilər) cavabı NaN olaraq qarşımıza çıxacaq.

23) Sual: Eval nədir?

Cavab: Bu funksiya string kimi təqdim olunan kodları number’a çevirir.

24) Sual: Window Document arasındakı fərq nədir?

Cavab:

Window:

  1. Bütün web-saytlarda əsas elementdir.
  2. Bütün səhifələrdə var amma gizlin şəkildədir.
  3. Özünə xas propertisi var. Məsələn .array(), .document()

Document:

  1. Window’un child elementi sayılır yəni window.document() şəklində çağırmaq olar.
  2. DOM (Document Object Model) olaraq da bilinir.
  3. Özünə xas propertisi var. Məsələn .querySelector(), .getElementById(), .body()

25) Sual: Javascript-də tarixə necə daxil olunur?

Cavab: Burda köməyə window.history obyekti gəlir hansı ki bundan back() forward() yazaraq əvvəlki və ya sonrakı tarixçəyə keçid etmək mümkündür.

github hesabımdayam və window.history.back()dən istifadə edərək bundan əvvəlki URL-ə keçid etmək mümkündür
belə bir nəticə oldu
window.history.forward() yazaraq bundan sonrakı URL-ə keçid etmək mümkündür bu da hansıki az öncəki github hesabım idi

26) Sual: JavaScript kodunu debug etmək üçün istifadə olunan alətlər və ya üsullar hansılardır?

Cavab:

  1. İstifadə etdiyimiz müasir brauzerlər hansı ki tərkibində debug alətləri var.
  2. Node
  3. JS Bin
  4. console.log

27) Sual: Undeclared Undefined variable’ları arasındakı fərqlər hansılardır?

Cavab:

Undeclared:

  1. Bunlar programda mövcud olamayan variables’dır.
  2. Undeclared variable oxumağa çalışdıqda runtime error verir.

Undefined:

  1. Bunlar programda var amma heçbir dəyəri yoxdur.
  2. Undefined variable oxumağa çalışdıqda undefined cavabı gəlir.

28) Sual: Global variables nədir?

Cavab: Global variables programlaşdırma dili konstruksiyasıdır və global scope’a aiddir və programın hər yerinə əlçatandır.

29) Sual: Global variable’larla bağlı problemlər nələrdir?

Cavab: Bunda əsasən kodu debug etmək və ya test etmək çətindir çünki local və global scope’dakı variable adları bir-birlərinə ziddir.

30) Sual: isFinite funksiyasının məqsədi nədir?

Cavab: Bu funksiya təyin olunmuş ədədin sonlu olub olmadığını müəyyən edir və boolean dəyər göstərir əgər dəyər infinity NaN və ya -infinity olarsa false göstərir digər hallarda isə true olur.

31) Sual: Event flow nədir?

Cavab: Event flow(Hadisə axını) web səhifədəki hadisələrin alınma ardıcıllığıdır. Yəni müxtəlif iç-içə olan elementləri seçdiyiniz zaman seçilən elementə çatmazdan əvvəl global pəncərədə onun hər bir obyekti üçün click hadisəsi başlamalıdır. Event flow 2 yolu var:

  1. Top to Bottom (Yuxarıdan Aşağıya) və ya Event Capturing (Hadisə Çəkmə)
  2. Bottom to Top (Aşağıdan yuxarıya) və ya Event Bubbling (Hadisə köpüyü)

32) Sual: Event Bubbling nədir?

Cavab: Event Bubbling ilə hadisə əvvəlcə ən daxili element tərəfindən tutulur və idarə olunur, sonra isə xarici elementlərə yayılır.

33) Sual: Event capturing nədir?

Cavab: Event capturing ilə hadisə əvvəlcə ən kənar element tərəfindən tutulur və daxili elementlərə yayılır.

34) Sual: JavaScript’i kim yaratdı?

Cavab: JavaScript 1995-ci ildə Netscape Communications-da işlədiyi müddətdə Brendan Eich tərəfindən yaradılmışdır. Əvvəlcə o, Mocha adı altında hazırlanmışdı, lakin sonra Netscape-in beta versiyalarında ilk dəfə göndərildikdə bu dil rəsmi olaraq LiveScript adlandırıldı.

35) Sual: BOM(Browser Object Model) nədir?

Cavab: BOM sayəsində brauzerdən istifadə etməklə JS-ə danışmaq mümkündür. BOM obyektlərin naviqatoru, tarixçəsi, ekranı, yeri və sənədindən ibarətdir. Ancaq BOM standartlaşdırılmadığı üçün fərqli brauzerlərdə fərqli işləyə bilər.

36) Sual: ECMAScript nədir?

Cavab: ECMAScript JS-in əsasını təşkil edən script dilidir. ECMAScript ECMA-262 və ECMA-402 spesifikasiyalarında ECMA Beynəlxalq standartlar təşkilatı tərəfindən standartlaşdırılıb. ECMAScript-in ilk nəşri 1997-ci ildə buraxıldı.

37) Sual: JSON nədir?

Cavab: JSON (JavaScript Object Notation) məlumat mübadiləsi üçün istifadə olunan yüngül formatdır. O, JavaScript-də obyektlərin qurulma tərzində JavaScript dilinin alt çoxluğuna əsaslanır.

38) Sual: JSON-da syntax qaydaları hansılardır?

Cavab:

  1. Datalar vergül işarəsi ilə ayrılır.
  2. Objectlər bəzəkli mötərizə içərisində yazılır.
  3. Arraylar kvadrat mötərizə içərisində yazılır.

39) Sual: setTimeout-un istifadəsi nədir?

Cavab: Bu metod sayəsində müəyyən millisaniyədən sonra funksiyanı çağırmaq olur.

burada artıq mesaj 1 saniyədən sonra avtomatik olaraq görsənəcəkdir.

40) Sual: setInterval-ın istifadəsi nədir?

Cavab: funksiyanı çağırmaq və ya ifadəni müəyyən edilmiş intervallarla (millisaniyələrlə) qiymətləndirmək üçün istifadə olunur.

41) Sual: JSON stringify metodunun məqsədi nədir?

Cavab: stringify’ın nə olduğunu bildiyimizə görə bu sualın da cavabını rahat bilmək olar. Web serverlərə data göndərmək istədiyimiz zaman bu data string formatında olmalıdır. Bu datanı da JSON obyektinə stringify() metodundan istifadə edərək istədiyimiz nəticəyə nail ola bilərik.

42) Sual: JSON string’i necə parse(təhlil) etmək olar?

Cavab: parse’ın nə olduğunu bildiyimizə görə bu sualın da cavabını rahat bilmək olar. Web serverdən dataları götürdüyümüz zaman bu datalar həmişə string formatında olur. Bu alınan datanı da asanlıqla parse() metodu ilə parse etmək olar.

Note: Bu metod sayəsində string dəyərləri JS obyektinə çevirmək olur

43) Sual: Niyə JSON’a ehtiyacımız var?

Cavab: Browser və server arasındakı data göndərilib və alınması yalnız text formatında ola bilər. Bu səbəbdən də köməyimizə JSON çatır ki, bunun da səbəbi JSON yalnız text formatında olur və o, asanlıqla serverdən və serverə göndərilə bilər və istənilən proqramlaşdırma dili tərəfindən text formatı kimi istifadə edilə bilər.

44) Sual: PWA’lar nədir?

Cavab: PWA(Progressive web application(Progresli web tətbiqi)) HTML, CSS və JavaScript daxil olmaqla ümumi veb texnologiyalarından istifadə etməklə qurulan veb vasitəsilə çatdırılan mobil proqram növüdür. Bu PWA-lar serverlərə yerləşdirilir, URL-lər vasitəsilə əldə edilir və search engine-lər tərəfindən indekslənir.

45) Sual: clearTimeout metodunun məqsədi nədir?

Cavab: Global clearTimeout() metodu əvvəllər setTimeout() çağırmaqla müəyyən edilmiş fasiləni silir. Yəni setTimeout() funksiyanın return dəyərini variable’da saxlayır və timer-i sıfırlamaqüçün clearTimeout()-a ötürür.

46) Sual: clearInterval methodunun məqsədi nədir?

Cavab: Global clearInterval() metodu setInterval() ilə qurulmuş zamanlanmış, təkrarlanan hərəkəti ləğv edir. Yəni setInterval() funksiyası tərəfindən return olunan variable-da saxlanılır və intervalı təmizləmək üçün clearInterval() funksiyasına ötürülür.

47) Sual: Javascript-də yeni səhifəni necə yönləndirmək olar?

Cavab: JS-də windows obyektinin location property-sindən istifadə edərək yeni səhifəyə yönləndirmək olar.

48) Sual: 2 data obyektini necə müqayisə etmək olar?

Cavab: Müqayisə operatorları (==, !=, === və !== operatorları) əvəzinə tarix dəyərlərini müqayisə etmək üçün date.getTime() metodundan istifadə etmək lazımdır.

Aşağıdakı linkdə data.getTime() metodu haqqında məlumat ala bilərsiniz.

Examlpe:

49) Sual: break və continue ifadələri nədir?

Cavab:

Break ifadəsi döngədən “tullanmaq” üçün istifadə olunur. yəni, döngəni pozur və döngədən sonra kodu icra etməyə davam edir.

Continue ifadəsi döngədə bir kodun“üstündən tullanmaq” üçün istifadə olunur. Yəni, müəyyən bir vəziyyət yaranarsa, bir kodu (döngüdə) pozur və dövrədə növbəti kod ilə davam edir.

50) Sual: Random integer necə yaratmaq olar?

Cavab: Bunun üçün Math.random() və Math.floor()-dan istifadə etmək lazımdır. Math.random() 0-1 arasında olan random ədəd seçir və bunları tam ədədə çevirmək üçün math.Floor()-dan istifadə etmək lazımdır. Alınmış cavabı isə 1-dən hansı ədədə kimi random ədəd seçməyinə istifadə emək olar.

--

--