Məzmuna keçin

JavaScript

JavaScript haqqında demək olar ki, hər şey

8 Mövzular 9 Yazılar
  • JavaScript-də bind, call və apply metodları

    bind call apply this
    1
    1 Yazılar
    16 Baxışlar
    Heç kim cavab yazmayıb
  • JavaScript-də Closure

    closure asinxron
    1
    1 Yazılar
    9 Baxışlar
    Heç kim cavab yazmayıb
  • JavaScript-də hoisting

    hoisting tdz dəyişənlər functions
    1
    1 Yazılar
    9 Baxışlar
    Heç kim cavab yazmayıb
  • JavaScript-də Iterators və Generators

    iterators functions generators symbol
    2
    2 Yazılar
    26 Baxışlar
    codexC
    function* observerGenerator() { while (true) { console.log(`Value passed: ${yield}`); } } const obs = observerGenerator(); obs.next('first'); obs.next('second'); obs.next('third'); Gəlin bu generator funksiyasının necə işlədiyini addım-addım izah edək ki, niyə yalnız "second" və "third" dəyərləri ekrana çıxır, anlaşılsın. Addım-addım izah: Addım 1: Generator yaradılır const obs = observerGenerator(); Bu sətir observerGenerator generator funksiyasını başlatmır, sadəcə obs adlı generator obyektini yaradır. Addım 2: obs.next('first') Generator ilk dəfə next('first') ilə işə salınır. obs.next('first'); Vacib məqam: Generatorlar yield sətrinə çatana qədər kodu işlətməyə başlayır. Bizim generatorda ilk sətir bu olur: console.log(`Value passed: ${yield}`); Burada yield ifadəsi özündə dəyəri saxlayır, amma ilk dəfə next() çağırıldıqda, yield-ə verilən dəyər gözlənilmir, çünki generator hələ dayanmamışdı. Yəni obs.next('first') çağırıldıqda: Generator işə düşür, yield-ə gəlib dayanır, Amma yield-ə dəyər ötürülmür, ona görə də console.log(...) işləmir. Addım 3: obs.next('second') İndi isə yield artıq dayandığı yerdə gözləyir. Biz second dəyərini ötürürük: obs.next('second'); Bu dəyər birbaşa yield ifadəsinə ötürülür console.log(...) artıq işləyir və:Value passed: second Addım 4: obs.next('third') Bu dəfə eyni proses təkrar olunur: obs.next('third'); third dəyəri yenə yield-ə ötürülür, console.log(...) işləyir:Value passed: third Nəticə: Yalnız ikinci və üçüncü next() çağırışlarında console.log() işləyir, çünki: İlk next() generatoru yield-ə qədər aparır və heç bir dəyər ötürmür (sadəcə start verir). Sonrakı next(dəyər) çağırışları isə yield-ə dəyər ötürür və nəticədə console.log() işləyir. Qısa xülasə: next() çağırışı yield-ə nə ötürülür? Nəticə obs.next('first') Heç nə console.log() işləmir obs.next('second') 'second' Çıxış: Value passed: second obs.next('third') 'third' Çıxış: Value passed: third
  • JavaScript-də asinxronluq

    asinxron eventloop callstack promise
    1
    1 Yazılar
    24 Baxışlar
    Heç kim cavab yazmayıb
  • JavaScript-də Promis

    promise asinxron then catch finally
    1
    1
    1 Yazılar
    33 Baxışlar
    Heç kim cavab yazmayıb
  • Yüksək səviyyəli funksiyalar (Higher Order Functions)

    hof currying functions callback
    1
    1 Yazılar
    10 Baxışlar
    Heç kim cavab yazmayıb
  • JavaScript-də scope-lar

    scope closure iife hoisting
    1
    1
    1 Yazılar
    11 Baxışlar
    Heç kim cavab yazmayıb