Javascript
Function declaration odatdagi funksiya bo'lib sintaksisi quyidagicha:
Function declaration ni e'lon qilishdan oldin ishlatish mumkin. Bunda hoisting yuzaga keladi.
Function expression function kalit so'zi va uni biror o'zgaruvchiga tenglab qo'yish orqali amalga oshiriladi:
O'zgaruvchilarni e'lon qilishdan oldin ishlatib bo'lmaganligi uchun ushbu funksiyani ham e'lon qilishdan oldin ishlatib bo'lmaydi. Ya'ni bunda hoisting yuzaga kelmaydi.
Arrow function bu function expression yozishning boshqacha usuli hisoblanadi. Bunda hech qanday function kalit so'zi ishlatilmaydi. Uning o'rniga esa => belgisi ishlatiladi:
Arrow function ning o'zining ham yozishning bir qancha usullari bor.
Javascript array metodlari
splice(start, deleteCount, element1, element2 ... elementN);
let arr = [ "I", "study", "Javascript"];
arr.splice(1, 1) //birinchi indeksdan boshlab 1 ta elementni olib tashlaydi.
Endi esa arraydan 3 ta elementni olib tashlab ularni o'rnini to'ldirishni ko'rib chiqamiz:
let arr = ["I", "study", "Javascript", "right", "now"];
splice
Bu erda biz olib tashlangan elementlar qatorini qaytarganini ko'rishimiz mumkin
let arr = ["I", "study", "Javascript", "now"];
shuningdek, splice() metodi arraydan elementlarni o'chirmasdan unga element qo'shib qo'yishi mumkin:
let arr = ["I", "study", "Javascript", "now"];
arr.splice(2, 0, "most", "used", "language");
console.log(arr); // ["I", "study", "most", "used", "language" "Javascript", "now"];
shuningdek, negative qiymatlar ham qabul qilinadi. Negative -1 degani bu oxirgi elementdan bitta oldingi elementni bildiradi.
// from index -1 (one step from the end)
JS Destructuring
Destructuring bu Javascriptdagi maxsus ifoda bo'lib, u yordamida array qiymatlarini yoki obyekt xususiyatlarini ajratib olish mumkin.
Rest operatori - miqdori oldindan aniq bo'lmagan qiymatlarni array ko'rinishida ifodalashda ishlatilinadi
const nums = [10, 20, 30, 40];
Obyektlar bilan ham shunday ishlaydi
Spread operatori - takrorlanadigan arrayga o'xshash qiymatlarni yoyishda ishlatilinadi.
const array1 = [10, 15, 20];
const array2 = [...array1, 25, 30]
console.log(array2); //[10, 15, 20, 25, 30]
Agar ikkinchi arrayni ichidagi array1 o'rniga ... ni qo'ymasak array ichidagi arrayga aylanadi
Short sircuit, nullish va optional chaining
Javascript dasturlash tilida berilgan ifodani chapdan o'ngga qarab || (OR) yoki && (AND) operatorlani yordamida baholashga short circuit evaluation deyiladi.
|| (OR) operatori birinchi rost bo'lgan (truthy) qiymatni darhol qaytarib yuboradi. Agar hech qanday rost qiymat bo'lmasa oxirgi yolg'on qiymatni qaytaradi (false ni emas).
&& (AND) operatori esa ifodani baholashda yolg'on qiymatga uchrashi bilan o'sha yolg'on qiymatni qaytaradi. Agar hammasi rost qiymat bo'lsa oxirgi rost qiymatni qaytaradi.
?? (nullish coalescing) operatori mantiqiy operator bo'lib, berilgan ifodaning chap tomoni null yoki undefined bo'lganda o'ng tomondagi qiymat qaytariladi, aks holda chap operand qiymati qaytariladi.
?. optional chaining operatori berilgan obyektning xossasini olishda yoki funksiyani chaqirishda ishlatilinadi. Agar obyekt yoki berilgan funksiya undefined yoki null bo'ladiga bo'lsa berilgan ifoda short circuit ga uchraydi va natijaviy qiymat undefined ga teng bo'ladi hech qanday xato yuzaga kelmaydi.
Obyektlar
Obyektlar reference turlarga kiradi. Obyektlarni primitive turlardan farqi: agar primitive turdagi ma'lumotlardan nusxa olinsa to'liq, tag tugi bilan nusxa olinadi. Agar obyektdan nusxa olinsa obyektning o'zidan emas balki uning manzilidan nusxa olinadi.
Obyektga tayinlangan o'zgaruvchi o'zida obyektning manzilini saqlaydi. Obyektni o'zini emas. Bu xuddi sizda oq qog'oz bor va unga obyektning manzili yozilgan deb tushunish mumkin.
Qachonki obyektdan nusxa olinganda uning manzilidan nusxa olinadi, lekin obyektning o'zi dublikatlanmaydi:
Endi bizda 2 ta o'zgaruvchi bor, qaysiki har ikkisi ham obyektning manzilini saqlaydigan, lekin obyektning o'zi bitta.
Biz har ikki o'zgaruvchidan obyektning xususiyatlariga murojaat qilishda foydalanishimiz mumkin. Hattoki bir o'zgaruvchi orqali obyekt qiymatlarini o'zgartirsak va ikkinchi o'zgaruvchi orqali obyekt xususiyati qiymatini olmoqchi bo'lsak o'zgargan qiymat kelib chiqadi.
admin.name = 'Pete'; // "admin" o'zgaruvchi orqali qiymat o'zgartirildi.
console.log(user.name); // 'Pete', o'zgarishlar"user" o'zgaruvchi orqali ham ko'rindi.
Bu xuddi bizda bir xonaning 2 ta kaliti bor deb tasavvur qilsak bo'ladi. Agar bitta kalit orqali xonaga kirib xona ichida o'zgarishlar qilsak keyinroq boshqa kalit bilan xonaga kirib biz qilgan o'zgarishlarni ko'ra olishimiz mumkinligini anglatadi.
Loop lar arraylar bilan:
Arraylar bilan ishlash uchun for ... of loop qulayroqdir.
Boshqa loop larni ham ishlatish mumkin. Lekin for ... in loop ancha noqulaylik keltiradi.
Arraylarni solishtirish
Arraylarni == operatori bilan solishtirib bo'lmaydi.
2 ta bir xil qiymatga ega bo'lgan array bir biriga teng bo'lmaydi. Arraylarni solishtirish obyektlarni solishtirishga o'xshashdir.
Array metodlari:
splice() metodi
[] lar ichidagilar esa optional, ya'ni ixtiyoriy.
deleteCount - nechta o'chirilishi kerakligi,
elem1, ..., elemN - qaysi elementlar qo'shiladi
Shuningdek, splice() metodi o'chirilgan elementlarni qaytaradi.
forEach loop
forEach loop kengaytmasi aslida: arr.forEach(item, index, array);
Date
Date obyektini quyidagicha yaratish mumkin.
Metodlari: