Tiplər, dəyişənlər və müqayisə
JavaScript-də dəyişənlər let (dəyişə bilən) və const (yenidən mənimsədilə bilməyən) ilə elan olunur. var köhnəlib — istifadə etmə.
Əsas primitiv tiplər: string, number, boolean, null, undefined. Fərqi bilmək vacibdir:
undefined— dəyər heç vaxt mənimsədilməyib (məs. mövcud olmayan obyekt sahəsi)null— dəyərin bilərəkdən boş olması
typeof operatoru tipi yoxlayır: typeof 42 → "number". Məşhur qəribəlik: typeof null → "object" (tarixi bug).
Müqayisə: həmişə === (ciddi bərabərlik) istifadə et. == tipi avtomatik çevirir və gözlənilməz nəticələr verir: 0 == '' → true, amma 0 === '' → false.
Truthy/falsy: şərt yerində hər dəyər boolean-a çevrilir. Falsy dəyərlər cəmi 6-dır: false, 0, '', null, undefined, NaN. Qalan hər şey truthy-dir — o cümlədən boş massiv [] və boş obyekt {}!
Test kodunda bu, assertion səhvlərinin klassik mənbəyidir: if (results) boş massivdə də true olur — if (results.length > 0) yazmaq lazımdır.
| İfadə | Nəticə | Niyə |
|---|---|---|
| 0 == '' | true | == hər ikisini number-ə çevirir |
| 0 === '' | false | tiplər fərqlidir, çevirmə yoxdur |
| Boolean([]) | true | boş massiv truthy-dir |
| null == undefined | true | == üçün xüsusi qayda; === ilə false |
| NaN === NaN | false | NaN heç nəyə bərabər deyil — Number.isNaN() istifadə et |
Template literals test kodunda hər gün lazımdır: ` Salam, ${userName}! — dinamik locator-lar və test adları üçün əsas alət: page.locator([data-id="${productId}"]) `.
📚 Mənbələr və sənədlər
- Qrammatika və tiplərrəsmideveloper.mozilla.org
- Bərabərlik müqayisələrirəsmideveloper.mozilla.org
== və === arasındakı fərqin rəsmi, dəqiq izahı — cədvəllərlə.