Javascript (lesson-1)
Brenden Eich Netscape developer) 1995-yil 10 kun ichida yaratilgan;
Mocha - Livescript - JavaScript (Java was popular) java mashhur bo'lgani uchun uni teztroq mashhur bo'lishi uchun shu nom bilan nomlagan.
Microsoft Internet Explorer 3'ni Netscape'ga raqobatdosh qilib yaratadi.
Web Browserlarda JS'ning asosiy 3 ta qismdan iborat:
2. DOM ( Document Object Modal) - events, (scroll, keyboard), forms.
3. BOM ( Browser Object Modal) - location, notifications.
input and output.
FirstName = prompt ('enter ur first name'); lastName = prompt (' enter ur last name');
yuqorida ma'lumot kiritildi endi uni amal bajarib chiqarishimiz kerak.
output qilishning bir necha yo'llari bor.
(optimal) console.log();
//innerHTML: fullName = fistName + "" + lastName; // output document.body.innerHTML = fullName;
// document.write: fullName = fistName + "" + lastName; // output document.write(fullName);
//window.alet: fullName = fistName + "" + lastName; // output window.alert(fullName);
// window.confirm: fullName = fistName + "" + lastName; //output window.confirm(fullName);
// console.log: fullName = fistName + "" + lastName; //output console.log(fullName);
console.log'da uning outputni browserdagi inspect bo'limidagi output sifatida consoledan foydalanamiz.
Syntax and comments:
comments: // and /* ... */ xilda bolib, /* ... */ bunisi bilan bir necha qatorni kamentariyaga olishimiz mumkin.
// bunisi bilan bir necha qatorni kamentariyaga olishimiz mumkin.
semicolon (;) manushu belgi bo'lib,statement esa yozgan code'mizni qatori masalan:
console.log(fullName);
manu bu bir stetement hisoblanadi.
jingalak qavslar bilan yozilgan code'larimiz block hisoblanadi. Masalan:
btn.onclick = function () { this.style.display = "none"; }
3+4 matematik qoidalar expression hisoblanadi.
- Whitespace - bo'sh joylar degani;
- space - "...";
- new line - yangi qator;
- tab - otasi bolasi bir tarafda bo'lib turishi;
- pritter - code'mizni tartib bilan yozilishini ta'minlaydi. Ctrl + S - bilan amalga oshiriladi
Nomlashda e'tibor beriladigan narsalar:
- Harflardan iborat bo'lishi
- Raqamlardan iborat bo'lishi
- underscore'dan iborat bo'lishi yoki
- Dollor belgisida iborat bo'lishi
Ammo raqamlar bilan boslanmasligi kerak.
shuningdek, katta harf va kichkina harfni farq bor
A = 2; a = 3;
bunda A bitta o'zgaruvchi a esa bitta o'zgaruvchi hisoblanadi
Nomlashda qisqa va tushunarli nomlash kerak.
groupNumber = "N13" groupStudentsNumber = 20 - //descriptivelik bor grStudentsNum = 20 - //descriptivelik va short bor
Nomlashda javascriptning keywordlaridan foylanmasligimiz kerak. Chunki JS qaysi birini tanlashni bilmay qoladi.
Nomlashning turlari:
Hypens ya'ni (-) belgisidan foydalanishga ruhsat berilmagan. masalan: ( first-name);
Underscore or SnackCase (first_name) va CamelCase (FirstName or firstName);
Variables.
O'zgaruvchi bu ma'lumotlarni ozida saqlovchi container;
O'zgaruvchi bu ma'lumotlar uchun nomlangan xotira, biz store goodies, visitors and other data'lar uchu o'zgaruvchilardan fotydalanamiz.
firstName = "Jamila"; lastName = "Aliyeva";
bu holatda hech narsa yozmaydigon bolsak o'zgaruvchilarning oldiga bu var halatida taniydii.
var firstName = "Jamila"; var lastName = "Aliyeva";
agar o'zgaruvchi yaratmoqchi bo'lsak oldiga var/ let/ const qo'yishimiz kerak.
var JS yaratilganidan beri bor.
Let bilan Const esa ES6 ya'ni 2016 versiyasidan beri chiqishni boshlagan.
Let Varni bir qancha kamchiliklarini to'g'rlaydi.
Biz asosan LET'dan foydalanamiz.
| DECLARATION (DACLARE) - E'LON QILISH;
| INILITILIZE (INITIALIZATION) - ISHGA TUSHIRISH;
| ASSIGN (ASSIGNMENT) - O'ZLASHTIRISH;
let firstName; // declation - o'zgaruvchi e'lon qilindi firstName = "Jamila" // inilitialization - o'zgaruvchi ishga tushurildi firstName = "Aliyeva" // assigment - o'zgaruvchi initilize'dan o'zgarib, asssigmentga o'zgaradi. console.log(firstName); // output
bu holatta oxirgi ya'ni Aliyeva console'ga chiqadi.
let a = 4; let b = 10; let c = a + b; console.log (c);
bu misolda console'ga chiqgan qiymat 14 bo'ladi.
let a = 4; let b = 10; a = a + b; b = a - b; console.log(a); console.log(b);
bu misoldagi console'ga chiqgan qiymat 4 bo'ladi, ya'ni a qiymatni o'zlashtirib oladi birinchi a ning qiymati 14 bo'lsa, o'sha qiymatdan bdagi 10 ayriladi va 4 qiymati chiqadi.
variables in declaration → undefined
agar declaration'da initialize qilmasak, uning qiymati undefined bo'ladi.
o'zlashtirish operatori degani)
let = 10; let = 4; let c = 5; let res = (a * b - c + b) / 10; console.log(res);
javascript dinamikali til hisoblanadi. Masalan, biz boshqa tillarda bu qiymat string yoki number deb aytamiz lekin JS'da unaqa emas o'zi aniblab o'ladi.
one statement, many variables ( aren’t recommended);
let x = 3, y = 5, z = 10;
bu holatta yozish tafsiya etilmaydi. Lekin hato emas.
let x = 3; let y = 5; let z = 10;
ko'p steatment bo'layotgan bo'lsa ham yuqoridagi usul yaxshiroq;
two types of data (string and number);
undefined vs. undeclared variables
undefined e'lon qilingan lekin hali qiymat berilmagan,
let group; console.log(group);
bu holatta console'ga undefined chiqadi.
undeclared agar o'zgaruvchi e'lon qilinmagan bo'lsa undeclared chiqadi.
console.log(pupil);
bu hali hech qayerda e'lon qilinmagan, shuning uchun console'ga not declare deb chiqadi.
var a = 4; var a = 5; var a = 10; console.log(a);
var yuqorida aytganimizdek eski versiyasi hisoblanadi, unda bitta o'zgaruvchini bir necha marta e'lon qilishimiz mumkin bo'lgan lekin bitta o'zgaruvchini bir marta e'lon qilsak shu yetarli bo'ladi aslida. Bu logikaviy jihatdan xato bo'ladi.
agar biz let'da bitta o'zgaruvchini qayta e'lon qilmoqchi bo'lsak ruhsat bermaydi.
redeclere bo'ladi ya'ni qayta e'lon qilib bo'lmaydi.
constants (simple and uppercase)
constants o'zi nomidan bilsak bo'ladiki o'zgarmas dean ma'noni anlatadi. Uni declaration qilishimiz mumkin, initilization qilishimiz mumkin ammo assig qila olmaymiz. Uni birdaniga initilation qilish orqali ishga tushura olamiz. Consrtatani bilishimiz uchun ham uni katta hardlarda yozishimiz kerak.
Arithmetic operator
Type operator
let str = "Jamila";let age = 17; console.log(typeof str); console.log(typeof age);
bu operatorning vazifasi turini chiqarib berish.
Unary opteratorlari
- +x → musbat songa almashtiradi.
- -x → manfiy songa almashtiradi.
- ++x → o’zgaruvchini 1 ga oshiradi.
- --x → o’zgaruvchini 1 ga kamaytiradi.
- x++ → o’zgaruvchini 1 ga oshiradi.
- x— → o’zgaruvchini 1 ga kamaytiradi.
bular o'zgaruvchilarning oldiga yoki orqasiga qo'yiladi.
let a = "5"; let b = 10; console.log("a ning turi: ", a);
bu holatta console'ga qiymat 510 chiaqadi chunki string sifatida qo'shyapti.
let a = "5"; let b = 10; console.log("a ning turi: ", typeof +a);
bu halatta esa console'ga qiymat number bo'lib chiqadi.
agar shu qiymatlarga yuqaridagidek amallarni qo'ysak, berilgan defination'inidek console'da ishga tushib ketaveradi