Literallar
Download 60.09 Kb.
|
1 2
Bog'liq2 5224354929879026563
- Bu sahifa navigatsiya:
- 3. Ma’lumotlar turlari, qiymatlar va o’zgaruvchilar
- 3.7. O’zgarmas oddiy qiymatlar va o’zgaruvchan ob’yektlarga ko’rsatkichlar
2.3 Literallar12 // 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’zgaruvchilarJavaScriptda 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’rsatkichlarJavaScriptda 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 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
ma'muriyatiga murojaat qiling