Əsas JavaScript sualları
- null və undefined? Qəsdən boşluq seçimi ilə verilməmiş dəyəri fərqləndir; ikisi də öz primitiv tipinə malikdir.
- == və ===? Birincidə çevirmə qaydaları var, ikincidə tip çevrilmir.
NaN === NaNyenə false-dur;Number.isNaNistifadə et. - &&, ||, !!? İlk iki operator operand qaytara bilər; iki inkar boolean yaradır. Falsy dəyərləri nümunələrlə sadala.
- var, let və const? var funksiya görünmə sahəli, let/const blok görünmə sahəlidir. const obyektin içini dəyişməz etmir.
- Funksiyanı necə çağırırsan? Adi çağırış, metod çağırışı və new ilə konstruktor çağırışı fərqli kontekst yaradır.
- this, oxlu funksiya və arguments? Adi funksiyanın this-i çağırışdan asılıdır; arrow öz this/arguments yaratmır. Rest parametri müasir alternativdir.
- Spread və rest? Eyni üç nöqtə sintaksisi bir yerdə açır, parametr və destrukturizasiyada toplayır.
- Obyekt və massiv yoxlaması?
Array.isArraymassivi,Object.hasOwnöz xassənin varlığını yoxlayır. - Destrukturizasiya, şablon sətir və class? Məlumatı ayırmaq, ifadəni mətnə daxil etmək və ortaq davranışlı nümunələr yaratmaq üçündür.
- Saf və yüksək səviyyəli funksiya? Saf funksiya kənarı dəyişmir; yüksək səviyyəli funksiya funksiya qəbul edir və ya qaytarır. IIFE dərhal çağırılan funksiya ifadəsidir.
- DOM və preventDefault? DOM sənəd ağacıdır; preventDefault uyğun hadisənin standart hərəkətini dayandırır. target və currentTarget fərqini göstər.
map, filter və reduce məntiqi
function mapValues(items, callback) {
const result = [];
for (let i = 0; i < items.length; i++) result.push(callback(items[i], i));
return result;
}
function reduceValues(items, callback, initial) {
let result = initial;
for (const item of items) result = callback(result, item);
return result;
}
console.log(reduceValues([1, 2, 3], (sum, value) => sum + value, 0)); // 6
Bu sıx massivlər üçün təlim modelidir; native metodların bütün incəliklərini təkrarlamır. Filter üçün uyğun dəyəri yalnız şərt true olduqda nəticəyə əlavə et.
Dörd praktik tapşırıq
reverseArray(items)yeni tərs massiv qaytarsın, ilkin massiv dəyişməsin.greetAliens(names)hər adı salamlama mətninə daxil edib dövrlə göstərsin.justCoolStuff(a, b)iki massivdə ortaq dəyərləri tapsın. Təkrarlanan elementləri saxlayıb-saxlamamaq qaydasını əvvəl yaz.isTheDinnerVegan(meal)bütün elementlərinsourcedəyərininplantolduğunu yoxlasın. Qarışıq tərkib və boş yemək üçün seçdiyin qaydanı izah et.
Əlavə düşünmə sualları
Event bubbling hadisənin ağac boyunca yayılmasıdır. Closure funksiyanın yaradıldığı leksik mühitə çıxışını saxlayır. call, apply və bind adi funksiyanın çağırış kontekstini idarə edir. 0.1 + 0.2 ilə dəqiq bərabərliyin pozulması ikilik üzən nöqtə təqdimatından gəlir. HTML/CSS təkrarı üçün ilk modulun müsahibə dərsinə qayıt.
Event loop cari sinxron iş bitdikdən sonra uyğun növbələrdəki davamları emal edir. Promise davamları ilə taymer callback-ləri eyni növbə deyil; əvvəl cari kodu, sonra mikroişləri və uyğun taymer işini düşün. CSS təkrarı və əlavə layout tapşırıqları üçün HTML/CSS müsahibə dərsini aç.