1-bo‘lim
JavaScript bilan tanishuv
JavaScript nima, qayerda ishlaydi, HTML va CSS dan farqi, birinchi skript va konsol bilan ishlash.
Ushbu bo‘lim mundarijasi
HTML sahifaning suyagi, CSS uning ko'rinishi. JavaScript esa uning harakati - tugma bosilganda nima bo'lishini u hal qiladi.
Uch tilning vazifasi #
Birinchi dastur #
console.log("Salom, JavaScript!");
Salom, JavaScript!
console.log - ekranga chiqarish buyrug'i. Python dagi print,
C dagi printf ning muqobili.
| Joy | Qanday |
|---|---|
| Brauzer konsoli | F12 → Console yorlig'i |
| HTML fayl ichida | <script> tegi orqali |
| Node.js | Terminalda node fayl.js |
| Onlayn | CodePen, JSFiddle, PlayCode |
Eng tez usul - brauzeringizda F12 ni bosing, Console
yorlig'iga o'ting va shu yerga yozing:
console.log("Salom!");
Bu darslikdagi barcha misollar Node.js da tekshirilgan, DOM misollari esa brauzerda.
HTML sahifaga ulash #
<!DOCTYPE html>
<html lang="uz">
<head>
<meta charset="UTF-8">
<title>Birinchi JavaScript</title>
</head>
<body>
<h1>Mening sahifam</h1>
<button id="salomTugma">Bosing</button>
<!-- skript body oxirida - HTML yuklangandan keyin ishlaydi -->
<script src="skript.js"></script>
</body>
</html>
// skript.js fayli
const tugma = document.getElementById("salomTugma");
tugma.addEventListener("click", function () {
alert("Tugma bosildi!");
});
<script> ni qayerga qo'yish kerak?Brauzer HTML ni yuqoridan pastga o'qiydi. Agar skriptni
<head> ichiga qo'ysangiz, u hali mavjud bo'lmagan elementni
qidiradi va null oladi.
Uch yechim bor:
<!-- 1. body oxirida - eng oddiy -->
<script src="skript.js"></script>
<!-- 2. defer - HTML tahlil qilingach ishlaydi -->
<script src="skript.js" defer></script>
<!-- 3. async - yuklanishi bilan darhol ishlaydi -->
<script src="skript.js" async></script>
defer eng yaxshi tanlov: skript parallel yuklanadi, lekin
faqat HTML tayyor bo'lgach ishga tushadi va tartib saqlanadi.
async tartibni kafolatlamaydi - bir-biriga bog'liq skriptlar
uchun yaramaydi.
Kommentariyalar #
// Bu bir qatorlik komment
/*
Bu ko'p qatorlik
komment
*/
console.log("Kod ishlaydi"); // qator oxirida ham mumkin
// console.log("Bu ishlamaydi - komment ichida");
Kod ishlaydi
O'zgaruvchi bilan tanishuv #
let ism = "Husanboy";
let yosh = 25;
let shahar = "Namangan";
console.log("Ism : " + ism);
console.log("Yosh : " + yosh);
console.log("Shahar: " + shahar);
// Shablon satri - ancha qulay
console.log(`${ism}, ${yosh} yosh, ${shahar} shahridan`);
Ism : Husanboy
Yosh : 25
Shahar: Namangan
Husanboy, 25 yosh, Namangan shahridan
Oddiy qo'shtirnoq o'rniga teskari tirnoq (`) ishlatilsa,
ichida ${...} orqali o'zgaruvchi qo'yish mumkin:
`Salom, ${ism}!`
Bu tugma klaviaturaning yuqori chap burchagida, Esc ostida
joylashgan.
Afzalliklari:
+bilan ulash shart emas;- Ichida ifoda ham yozish mumkin:
`${2 + 2}`; - Ko'p qatorli matn yozish mumkin -
\nkerak emas.
const xabar = `Birinchi qator
Ikkinchi qator`;
console ning boshqa imkoniyatlari #
console.log("Oddiy xabar");
console.warn("Ogohlantirish");
console.error("Xato xabari");
// Bir nechta qiymatni birga
console.log("Ism:", "Malika", "Yosh:", 22);
// Jadval ko'rinishida
console.table([
{ ism: "Husanboy", yosh: 25 },
{ ism: "Nodira", yosh: 23 }
]);
Oddiy xabar
Ogohlantirish
Xato xabari
Ism: Malika Yosh: 22
┌─────────┬────────────┬──────┐
│ (index) │ ism │ yosh │
├─────────┼────────────┼──────┤
│ 0 │ 'Husanboy' │ 25 │
│ 1 │ 'Nodira' │ 23 │
└─────────┴────────────┴──────┘
console.log va vergul farqiconsole.log("Yosh: " + 25); // satrga aylantiradi
console.log("Yosh:", 25); // ikkita alohida qiymat
Vergul bilan yozish afzalroq:
- Obyektlar to'liq ko'rinadi,
[object Object]emas; - Brauzer konsolida ularni ochib ko'rish mumkin;
- Turlar saqlanadi - son son bo'lib qoladi.
Ayniqsa obyekt bilan farq katta:
const foydalanuvchi = { ism: "Aziza", yosh: 24 };
console.log("Ma'lumot: " + foydalanuvchi); // Ma'lumot: [object Object]
console.log("Ma'lumot:", foydalanuvchi); // Ma'lumot: { ism: 'Aziza', yosh: 24 }
JavaScript qayerda ishlatiladi? #
| Soha | Misollar |
|---|---|
| Frontend | Sahifa interaktivligi, formalar, animatsiya |
| Backend | Node.js bilan server, API |
| Mobil ilova | React Native, Ionic |
| Desktop | Electron (VS Code, Discord shu bilan yozilgan) |
| O'yinlar | Brauzer o'yinlari, Phaser |
| Avtomatlashtirish | Skriptlar, botlar |
Til haqida qisqacha #
// JavaScript nuqta-vergulsiz ham ishlaydi
let birinchi = 10
let ikkinchi = 20
console.log(birinchi + ikkinchi)
30
JavaScript avtomatik nuqta-vergul qo'yish (ASI) mexanizmiga ega, shuning uchun yuqoridagi kod ishlaydi.
Lekin ba'zi holatlarda bu noto'g'ri natija beradi:
const salom = "Salom"
const xabar = salom
[1, 2].forEach(console.log) // xato!
JavaScript buni bitta ifoda deb o'qiydi:
salom[1, 2].forEach(...).
Qoida: har doim nuqta-vergul qo'ying. Bu darslikda ham shunday qilinadi.
Tarixdan qisqacha #
| Yil | Voqea |
|---|---|
| 1995 | Brendan Eich JavaScript ni 10 kunda yaratdi |
| 1997 | ECMAScript standarti qabul qilindi |
| 2009 | Node.js - JavaScript serverga chiqdi |
| 2015 | ES6 - let, const, arrow, class, modullar |
| Har yil | Yangi versiya (ES2016, ES2017, ...) |
Nomlar o'xshash bo'lsa-da, ular hech qanday aloqaga ega emas.
1995-yilda Java juda mashhur edi. Netscape kompaniyasi o'z tilini reklama qilish uchun uni "JavaScript" deb atadi - bu marketing qarori edi.
Farqi:
| JavaScript | Java | |
|---|---|---|
| Turlar | Dinamik | Statik |
| Bajarilishi | Interpretator | Kompilyatsiya (JVM) |
| Ishlatilishi | Veb, server | Korporativ, Android |
Ular orasidagi bog'liqlik "avtomobil" va "avtobus" so'zlaridagi kabi - faqat nomda.
- Brauzeringizda
F12bosib, konsolgaconsole.log("Salom")yozing. - HTML fayl yaratib, unga
<script>orqali JS faylni ulang. defervaasyncfarqini o'z so'zingiz bilan tushuntiring.- Uchta o'zgaruvchi yaratib, ularni konsolga chiqaring.
- Shablon satri bilan bitta jumla yig'ing.
- Ko'p qatorli matnni teskari tirnoq bilan yozing.
console.warnvaconsole.errorfarqini ko'ring.console.tablebilan uchta obyektni jadval qilib chiqaring."Yosh: " + obyektva"Yosh:", obyektfarqini sinang.- Nuqta-vergulsiz kod xato beradigan misol toping.
Xulosa #
- HTML tuzilma, CSS ko'rinish, JavaScript xatti-harakat.
console.log- ekranga chiqarishning asosiy usuli.- Skriptni
bodyoxirida yokideferbilan ulang. defertartibni saqlaydi,asyncsaqlamaydi.- Shablon satrlari (
`) o'zgaruvchi qo'yishni osonlashtiradi. console.logda vergul ishlating,+emas.- JavaScript brauzerda ham, Node.js orqali serverda ham ishlaydi.
- Nuqta-vergul qo'yish yaxshi odat - ASI xatolaridan saqlaydi.
- JavaScript va Java butunlay boshqa tillar.
Keyingi bo'limda o'zgaruvchilar va ma'lumot turlarini batafsil ko'ramiz.
O‘qish tarixini saqlamoqchimisiz?
Tizimga kirsangiz, tugatgan bo‘limlaringiz saqlanadi va qoldirgan joyingizdan davom etasiz.
Xatolik topdingizmi?
Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.