2.1 O'zgaruvchilar va og'riq
Eng qiziqarli narsa bilan boshlaymiz. JavaScript'da o'zgaruvchilar bor, lekin bu o'zgaruvchilar hech qanday tipga ega emas. Har qanday o'zgaruvchiga mutlaqo har qanday qiymatni berish mumkin. Bu zararsiz yoki hatto qulay ko'rinadi, ammo sizga tiplarga ehtiyoj paydo bo'lganda, muammo boshlanadi.
O'zgaruvchini e'lon qilish uchun var kalit so'zi ishlatiladi:
var name;
var name = value;
JavaScript'da o'zgaruvchilar bilan ishlash misollari:
var a = 10, b = 20;
var c = a*a + b*b;
var s = "Diagonal teng:";
console.log( s + Math.sqrt(c));
Ajoyib va tushunarlik kod, shunday emasmi? Ehtimol, bu sizning hayotingizda oxirgi marta, siz chiroyli va tushunarli JavaScript kodini ko'rasiz. Shu lahzani eslab qoling :)
2.2 JavaScript'da Tipizatsiya
Yuqorida aytilganidek, JavaScript tilida o'zgaruvchilarning tipi yo'q. Ammo o'zgaruvchilar qiymatlari tiplarga ega. Mana JavaScript'da eng keng tarqalgan 5 ta tip:
| # | Tip | Misol | Tavsif |
|---|---|---|---|
| 1 | Number | |
Har qanday sonni saqlaydi |
| 2 | String | |
Matn saqlaydi |
| 3 | Boolean | |
true yoki false qiymatini saqlaydi |
| 4 | Array | |
Elementlar massivini saqlaydi |
| 5 | Date | |
Sanani saqlaydi |
| 6 | Object | |
Key-value juftliklardan iborat obyektni saqlaydi. Java'dagi HashMap ga o'xshaydi |
| 7 | Function | |
Funktsiya |
Obyektning tipini aniqlash uchun typeof kalit so'zi ishlatiladi, misol:
var s = "134";
var x = (typeof s == "String") ? s*1 : s;
2.3 Funktsiyalar va return
Albatta, JavaScript'da funktsiyalar mavjud. U yerda klasslar yo'q, shuning uchun funktsiyalarni har qanday joyda, hatto boshqa funktsiyalarda ham e'lon qilish mumkin. Umumiy format shunday:
function name(a, b, c) {
// funktsiya kodi
return result;
}
Funktsiyaning tipi yo'q. Nega kerak bo'lsa, o'zi tilida tiplarga moslikni nazorat qilish yo'qmi? Funktsiya parametrlari ham bo'lmasligi mumkin. Qaytadigan return amri ham bo'lishi mumkin.
Funktsiyani chaqirayotganda, har qanday turdagi va har qanday miqdordagi parametrlarni o'tkazishingiz mumkin. Ortiqchalari yo'q qilinadi, yetishmayotganlari null ga teng bo'ladi.
Funktsiyalar misollari:
function getValue(name)
{
return this[name];
}
function setValue(name, value)
{
this[name] = value;
}
2.4 JavaScript'da Massivlar
JavaScript'da massivlar Java'dagi massivlarga juda o'xshaydi. Misollar:
var array = [1, 2, 3, 4, 5];
array[3] = array[2];
console.log (array[0]);
Ular har qanday turdagi qiymatlarni, hatto boshqa massivlarni ham saqlashlari mumkin:
var array = [1, "Salom", 3.14, [4, 5] ];
array[3] = array[2];
console.log (array[0]);
Bundan tashqari, massivlar kolleksiyalar kabi harakat qiladi - ularga dinamik ravishda elementlar qo'shish mumkin:
var array = [];
array.push(100);
array.push(101);
array.push(102);
array[1] = array[2];
console.log (array[0]);
2.5 JavaScript'da Obyektlar
JavaScript'da obyektlar Java'dagi HashMap kabi: ular kalit-qiymat juftliklarini saqlaydi. Misol:
var obj = {
name: "Bill Gates",
age: 67,
company: "Microsoft"
};
console.log (obj.age);
Obyekt maydonlariga ikki xil usul bilan murojaat qilish mumkin:
var x = obj.age;
var x = obj["age"];
HashMap'dagi kabi, maydonlarni yaratish va o'chirish mumkin. Misol:
var obj = {};
obj.name = "Bill Gates";
obj.age = 67;
obj.company = "Microsoft";
delete obj.age; //maydonni o'chirish
GO TO FULL VERSION