JavaScript 📜
December 27, 2024

Javascript

Funksiyalar 3 xil bo'ladi:

  1. Function declaration
  2. Function expression
  3. Arrow function

Function declaration odatdagi funksiya bo'lib sintaksisi quyidagicha:

function myFunction(param1, param2) {

return param1 + param2;

}

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:

const myFunction = function(param1, param2) {

return param1 + param2;

}

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:

const myFunction = (param1, param2) => {

return param1 + param2;

}

Arrow function ning o'zining ham yozishning bir qancha usullari bor.



Javascript array metodlari

splice() metodi sintaksisi

splice(start, deleteCount, element1, element2 ... elementN);

let arr = [ "I", "study", "Javascript"];

arr.splice(1, 1) //birinchi indeksdan boshlab 1 ta elementni olib tashlaydi.

console.log(arr); // ["I", "Javascript"];

Endi esa arraydan 3 ta elementni olib tashlab ularni o'rnini to'ldirishni ko'rib chiqamiz:

let arr = ["I", "study", "Javascript", "right", "now"];

arr.splice(0, 3, "Let's", "dance");

console.log(arr); //["Let's", "dance", "right", "now"]

spliceBu erda biz olib tashlangan elementlar qatorini qaytarganini ko'rishimiz mumkin

let arr = ["I", "study", "Javascript", "now"];

let removed = arr.splice(0, 2);

console.log(removed); //["I", "study"];

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.

let arr = [1, 2, 5];

// from index -1 (one step from the end)

// delete 0 elements,

// then insert 3 and 4 arr.splice(-1, 0, 3, 4);

alert( arr ); // 1,2,3,4,5

JS Destructuring

Destructuring bu Javascriptdagi maxsus ifoda bo'lib, u yordamida array qiymatlarini yoki obyekt xususiyatlarini ajratib olish mumkin.

const nums = [10, 20, 30, 40];

const [num1, num2] = nums;

num1 // 10

num2 // 20

const [firstValue, ...otherValues] = nums;

console.log(firstvalue) // 10

console.log(otherValues) // [20, 30, 40]

Obyektlar bilan misol

const person = {name: "Davron", age: 36}

const{name, age} = person

console.log(name, age) // Davron 35

Rest operatori - miqdori oldindan aniq bo'lmagan qiymatlarni array ko'rinishida ifodalashda ishlatilinadi

const nums = [10, 20, 30, 40];

const [num1, ...boshqalar] = nums;

console.log(boshqalar) // [20, 30, 40]

Obyektlar bilan ham shunday ishlaydi

Spread operatori - takrorlanadigan arrayga o'xshash qiymatlarni yoyishda ishlatilinadi.

const numbers = [10, 15, 20, 25, 30];

console.log(Math.max(...numbers)); //30

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

const array2 = [[10, 15, 20], 25, 30]

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.

masalan:

let user = { name: "John" };

Qachonki obyektdan nusxa olinganda uning manzilidan nusxa olinadi, lekin obyektning o'zi dublikatlanmaydi:

let user = { name: "John" };

let admin = user; // copy the reference

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.

let user = { name: 'John' };

let admin = user;

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.

[] == [] // false

[0] == [0] / false

Array metodlari:

splice() metodi

arr.splice(start[, deleteCount, elem1, ..., elemN])

[] lar ichidagilar esa optional, ya'ni ixtiyoriy.

start - boshlanish indeksi,

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.

let date = new Date(argument);

Metodlari:
  • getFullYear();
  • getMonth();
  • getDate();
  • getHours(), getMinutes(), getSeconds(), getMilliseconds();
  • getDay() - hafta kunlarini ko'rsatadi;
  • getTime() - 01.01.1970 yildan keyin necha millisekund o'tganini ko'rsatadi;
  • getTimeZoneOffset();