Skip to main content

0.1. Kerakli JavaScript (ES6+)

Quyidagilarni erkin ishlata olishingiz kerak. Agar bittasi notanish bo'lsa, avval shuni o'rganing.

let va const (var emas)

const PI = 3.14;      // qiymati o'zgarmaydi
let count = 0;        // qiymati o'zgaradi
count = count + 1;

Arrow functions

// Oddiy funksiya
function add(a, b) {
  return a + b;
}

// Arrow ko'rinishi
const add = (a, b) => a + b;

// React'da doimo shunaqa ko'rasiz:
const greet = (name) => `Salom, ${name}!`;

Destructuring (eng ko'p ishlatiladi)

const user = { name: "Ali", age: 25 };
const { name, age } = user;   // user.name, user.age o'rniga

const colors = ["qizil", "yashil"];
const [first, second] = colors;

Spread / Rest

const arr1 = [1, 2];
const arr2 = [...arr1, 3, 4];   // [1, 2, 3, 4] — nusxa olish

const obj1 = { a: 1 };
const obj2 = { ...obj1, b: 2 };  // { a: 1, b: 2 }

Muhim: React'da state'ni hech qachon to'g'ridan-to'g'ri o'zgartirmaymiz, balki spread bilan yangi nusxa yasaymiz. Bu pattern'ni hozir o'zlashtiring.

Array metodlari: mapfilterreduce

const nums = [1, 2, 3, 4];

const doubled = nums.map(n => n * 2);        // [2, 4, 6, 8]
const evens   = nums.filter(n => n % 2 === 0); // [2, 4]
const sum     = nums.reduce((acc, n) => acc + n, 0); // 10

map — React'da ro'yxat chizishning asosi. Yoddan biling.

Ternary va &&

const status = isLoggedIn ? "Kirgan" : "Mehmon";
const greeting = isLoggedIn && "Xush kelibsiz!";

Modules (import / export)

// math.js
export const add = (a, b) => a + b;
export default function multiply(a, b) { return a * b; }

// app.js
import multiply, { add } from "./math.js";

Promise / async-await

async function getUser() {
  const res = await fetch("https://api.example.com/user");
  const data = await res.json();
  return data;
}