Literallar


Download 60.09 Kb.
bet1/2
Sana06.02.2023
Hajmi60.09 Kb.
#1172291
  1   2
Bog'liq
2 5224354929879026563

2.3 Literallar




12 // O’n ikki soni (son literali)
1.2 // Bir butun o’ndan ikki soni (son literali)
“Hello World” // Satr literali
‘Hi’ // Boshqa satr literali
true // Mantiqiy qiymat literali
false // Boshqa matiqiy qiymat literali
/javascript/gi // Regulyar ifoda literali (shablon orqali
// qidirish uchun)
null // Bo’sh obyekt literali
Literal – bu dastur matnida to’g’ridan to’g’ri yozilgan qiymatlar. Quyida literallarga misol keltirilgan:

3. Ma’lumotlar turlari, qiymatlar va o’zgaruvchilar


JavaScriptda ma’lumotlar turlarini ikkita sinfga ajratish mumkin: oddiy turlar va obyektlar. Ma’lumotlarning oddiy turlar sinfiga sonlar, satrlar va matiqiy qiymatlar kiradi.
null va undefined elementar qiymatlar xisoblanadi. Lekin ular son, satr yoki matiqiy qiymatlarning birontasiga a’loqador emas. Ularning har biri o’zining maxsus turiga mansub yogona qiymatni aniqlab keladi.
JavaScriptdagi son, satr, mantiqiy tur va null yoki undefined bo’lmagan istalgan qiymat obyekt xisoblanadi. Obyekt o’zida xususiyat(property)larni jamlagan bo’lib, ularning har biri nom va qiymat (oddiy toki obyekt sinfiga mansub qiymat)ga ega.
JavaScriptda o’zgaruvchilar turga ega bo’lishmaydi: o’zgaruvchiga istalgan turga mansub qiymatni o’zlashtirish mumkin va keyincha unga yana boshqa turdagi qiymatni ta’minlashimiz ham mumkin.

3.7. O’zgarmas oddiy qiymatlar va o’zgaruvchan ob’yektlarga ko’rsatkichlar


JavaScriptda oddiy qiymatlar (undefined, null, mantiqiy qiymatlar, sonlar va satrlar) va ob’yektlar (massiv va funksiyalarni ham xisobga olganda) o’rtasida farq mavjud. Oddiy qiymatlar o’zgarmasdirlar: oddiy qiymatlarni o’zgartirib bo’lmaydi. Bu mantiqiy va sonli qiymatlar uchun turgan gap – masalan, sonning qiymatini o’zgartirishni tasavvur e’tib bo’lmaydi. Satrlarga kelsak, ba’zi savollar tug’ilishi mumkin. Axir satrlar belgilar massivi xisoblanadi. Bundan, satrning u yoki bu o’rnida turgan belgini o’zgartirish mumkin ekanligini tushunish mumkin. Lekin, amalda JavaScript bunga yo’l qo’ymaydi. Buning o’rniga JavaScriptdagi barcha satr metodlari o’zgargan satrni qaytaradi, aniqroq qilib aytganda yangi satrli qiymat qaytaradi.


var s = “hello”; // Bir necha belgilardan tashkil topgan satr
s.toUpperCase() // “HELLO” qiymatini qaytaradi, lekin s
// satrning qiymati o’zgarmaydi
s // => “hello”: s satrning qiymati o’zgarmagan


Ma’salan:

Bundan tashqari, oddiy turlar qiymatlari orqali solishtiriladi: ikkita oddiy turga mansub literallar yoki o’zida oddiy turga mansub qiymatni saqlayotgan o’zgaruvchilarning har birining qiymati bir xil bo’lgandagina o’zaro teng deb xisoblanishadi. Sonlar, mantiqiy qiymatlar, null va unefined uchun bu aniq ko’rinadi. Satrlar uchun solishtirishning bu usuli boshqacharoq amal qiladi. JavaScript ikkita satrli qiymatlarni faqatgina ularning uzunliklari teng bo’lganda va mos o’rinlardagi belgilari mos tushgandagina o’zaro teng deb xisoblaydi.


Ob’yeklar oddiy turlardan farq qiladi. Birinchidan ular o’zgaruvchandirlar – ularning qiymatlarini o’zgartirish mumkin:

var o = { x:1 }; // Ob’yektning boshlang’ich qiymati
o.x = 2; // Xususiyatining qiymatini o’zgartirish
// orqali ob’yektni o’zgartirish
o.y = 3; // Yangi xususiyat qo’shish orqali obyektni
// o’zgartirish
var a = [1,2,3]; // Massiv ham o’zgaruvchan ob’yekt
// xisoblanadi
a[0] = 0; // Massiv elementi qiymatini o’zgartirish
a[3] = 4; // Yangi element qo’shish



Ob’yektlar qiymatlari orqali solishtirilmaydilar: ikkita ob’yekt bir xil qiymatlardagi bir xil xususiyatlar to’plamiga ega bo’lganda ham o’zaro teng deb xisoblanmaydi. Ikkita massiv ham shular jumlasiga kiradi:

var o = {x:1}, p = {x:1}; // Ikkita bir xil xususiyatlarga ega
// ob’yektlar
o === p // => false: turli ob’yektlar
// teng emas
var a = [], b = []; // Ikkita turli bo’sh massivlar
a === b // => false: turli massivlar teng
// emas

JavaScriptning oddiy turlaridan farqlash uchun ob’yektlar odatda ko’rsatkichli turlar deb ataladi. Bunga ko’ra ob’yekt qiymatlari ko’rsatkich xisoblanadi va aytish mumkinki, ob’yektlar ko’rsatkichlar orqali solishtiriladi: ikkita ob’yekt qiymatlari faqatgina ular xotiradagi bitta ob’yektga murojaat qilganda teng deb xisoblanadi.

var a = []; // O’zgaruvchi a bo’sh massivga murojaat
// qilayabdi
var b = a; // Endi b ham xuddi shu massivga murojaat
// qilayabdi
b[0] = 1; // Massivni b o’zgaruvchidagi ko’rsatkich orqali
// o’zgartirish
a[0] // => 1: o’zgarishni a o’zgaruvchida ham
// kuzatish mumkin
a === b // => true: a va b xotiradagi bitta ob’yektga
// murojaat etayabdi, shuning uchun ular teng

Yuqoridagi misoldan ko’rinib turubdiki, o’zgaruvchiga ob’yekt(massiv)ni o’zlashtirish amali ko’rsatkichni o’zlashtirayabdi: u xotiradagi ob’yektning yangi nusxasini yaratmayabdi. Agar dasturda ob’yekt yoki massivning yangi nusxasini yaratish kerak bo’lsa, ob’yekt yoki massivning xususiyatlarini alohida nusxalash kerak bo’ladi. Keyingi misolda shunday nusxalash for takrorlanish operatori (takrorlanish operatorlari haqida 5.5.3 bo’limda) orqali amalga oshirilgan:

var a = [‘a’, ‘b’, ‘c’]; // Massivni nusxalaymiz
var b = []; // Nusxalash amalga oshiriladi-
// gan massiv
for(var i=0; i// menti uchun
b[i] = a[i]; // a[]ning elementini b[]ga
// nusxalash
}


Download 60.09 Kb.

Do'stlaringiz bilan baham:
  1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling