JavaScript -dagi ma'lumotlar turlari. JavaScript ma'lumotlar turlari

Men "Oddiy haqida qiyin" deb nomlangan maqolalar turkumini yozishga qaror qildim. Bu turkum JavaScript tiliga qaratiladi. Nima uchun "sodda narsa qiyin"? Chunki men sizga aytadigan hamma narsani ma'lumot turlaridan boshlab, tarjimon ishining o'ziga xos xususiyatlarini hisobga olgan holda aytib beraman. Bularning barchasi murakkab narsalar haqida, masalan, JavaScript -dagi merosxo'rlik usullari va boshqa naqshlar haqida gapirib berish uchun amalga oshiriladi.

JavaScript-bu prototipli tashkilotga ega ob'ektga yo'naltirilgan dasturlash tili.
"Prototipli tashkilot bilan" nimani anglatadi, biz keyingi maqolada gaplashamiz (albatta bo'ladi), lekin nima uchun u "ob'ektga yo'naltirilgan" va JSda hamma narsa ob'ektmi yoki yo'qmi, biz bugun bilib olamiz.
JS o'z maqsadlariga erishish uchun faqat 9 turga muhtoj. Bundan tashqari, ulardan faqat 6 tasi dasturda, qolgan 3 tasi faqat dastur darajasida mavjud va spetsifikatsiya bo'yicha ishlatiladi. Bir qarashda (va bu birinchi noto'g'ri tushuncha), JSda hamma narsa ob'ektlardir. Shunday qilib, dasturda mavjud bo'lgan oltita turdan beshtasi ibtidoiy deb ataladi va ular ob'ekt emas (quyida men nima uchun va qanday qilib ularni ob'ektlar bilan aralashtirib yuborishlarini tushuntiraman). Bu beshta primitiv:

- Ip (s = 'str')
- raqam (n = 10)
- mantiqiy (b = haqiqiy)

Va men ularni "falsafiy turlar" deb atayman:
- bo'sh (v = nol)
- aniqlanmagan (u = aniqlanmagan)

Null falsafiy degani, o'zgaruvchiga hech narsa tayinlanmagan degan ma'noni anglatadi va aniqlanmagan, bo'sh o'zgaruvchiga tayinlangan degan ma'noni anglatadi. Bu holda "hech narsa" va "bo'shlik" o'rtasidagi farq nima - bo'sh vaqtingizda o'ylab ko'ring. Biz hozir buni qilmaymiz.

Dasturda oltinchi tur (ob'ekt) mavjud:
-Ob'ekt(Ob'ekt konstruktori bilan adashmaslik uchun, biz hozir mavhum turlar haqida gapirayapmiz!) - bu JavaScript -dagi ob'ektlarni ifodalovchi yagona tur.
Ob'ekt-bu kalit-qiymat juftlari to'plami sifatida tasvirlangan ma'lumotlar tuzilmasi (ularning butun majmui). Ma'lumotlar har qanday turdagi bo'lishi mumkin - keyin bu ob'ektning mulki yoki hatto funktsiyasi bo'ladi - bu ob'ektning usuli bo'ladi.

Primitivlar bilan ishlashning son -sanoqsiz usullari mavjud. Ularni o'zgaruvchilarga harflar orqali yoki konstruktorlar orqali tayinlash mumkinligidan boshlab, ibtidoiylarni umuman o'zgarmaydigan qilib e'lon qilish mumkin emasligi bilan tugatish, ular bilan bevosita ishlash. Shuningdek, ibtidoiylar global o'zgaruvchilarda ham, mahalliylarda ham bo'lishi mumkin.

Bu erda ba'zi misollar:

Var v1; // aniqlanmagan (bo'sh) lokal o'zgaruvchi var v2 = "2"; // string mahalliy harf o'zgaruvchisi var v3 = new String (2); // string mahalliy o'zgaruvchisi konstruktor orqali e'lon qilinadi. String v4 = String (2) tipidagi yangi ob'ektni yaratadi; // string global o'zgaruvchisi konstruktor orqali chaqiriladi. Window.v4 "2" .length o'zgaruvchisini yaratadi; // satr o'zgaruvchiga aylanmaydi, lekin u allaqachon Object 34..toString () sifatida ishlatilishi mumkin; // raqam o'zgaruvchiga aylanmaydi, lekin uni allaqachon ob'ekt sifatida ishlatish mumkin 12. toString (); // raqam o'zgaruvchiga aylanmaydi, lekin u allaqachon ob'ekt sifatida ishlatilishi mumkin (22) .toString (); // raqam o'zgarmaydi, lekin uni allaqachon ob'ekt sifatida ishlatish mumkin

Oxirgi 4 ta buyruqda siz ibtidoiy ob'ekt bilan qanday chalkashib ketganini yaqqol ko'rishingiz mumkin - axir biz usulni nuqta orqali chaqiramiz - xuddi ob'ekt kabi. Haqiqatan ham, bu ibtidoiy narsalar ob'ektga o'xshaydi.

Noto'g'ri tushuncha, masalan, o'zgaruvchining turini tekshirganda murakkablashadi

Var v = null; turi v;

Va biz bunga javoban "ob'ekt" ni olamiz.

Va agar biz yozsak:
var v = null; v ob'ektof misol;

Shunda miyamda tartibsizlik paydo bo'ladi, chunki oxirgi satr natijasi "yolg'on" bo'ladi. Ya'ni, v o'zgaruvchisi ob'ekt turiga kiradi, lekin Object turidan meros qilib olinmagan. Nima balo ?!

Birinchidan, men hiylani typeof null bilan tushuntiraman. Bu operator ob'ekt turini qaytaradi. Gap shundaki, typeof operatori qattiq kodlangan jadvaldan olingan mag'lubiyat qiymatini qaytaradi, u erda: "null uchun" ob'ekt "ni qaytaring". Instansof operatori - biror narsa ko'rsatilgan ma'lumotlar turiga tegishli ekanligini tekshiradi. Men sizga buni keyingi maqolada aytib beraman, lekin sizni ishontirib aytamanki, bu holda u to'g'ri ishlagan, ibtidoiy null hech qachon Ob'ekt turidan meros bo'lib o'tmagan - bu rivojlanishning eng past bosqichi. .

OK, biz typeof va instansof bilan aniqladik, lekin usullar ibtidoiylar uchun chaqiriladi - xuddi ob'ektlar to'g'ri bo'lgani kabi! Qanday qilib bu ob'ekt bo'lmasa?

Mana gap. Qoplama funktsiyalari (konstruktorlar) kabi narsa bor (va ikkinchi maqolada yana tozalanadi). Ular hamma ibtidoiylar uchun mavjud (Number (), Boolean (), String ()) va boshqalar. Ularning mohiyati ibtidoiydan ob'ekt yaratishdir, unda bu turdagi ibtidoiy bilan ishlashning yordamchi usullari bo'ladi.
Masalan, o'zgaruvchini shunday yaratish mumkin:

Var num = yangi raqam (23.456);

Bunday holda, biz ob'ektni ibtidoiy 23.456 dan olamiz.
Raqamlar turi uchun Number () konstruktorida toPrecision () yordamchi usuli mavjud - bu raqam uchun muhim raqamlar sonini aniqlaydi. Masalan, agar muhim raqamlar soni 23,456 ga o'rnatilgan bo'lsa, biz 23,45 raqamini olamiz.
Va biz ibtidoiyni ob'ekt deb atashga harakat qilganimizda:

(23.456). toPrecision (4);

Tarjimon yangi raqamni (23.456) chaqirib, ibtidoiy narsani vaqtincha ob'ektga o'rab oladi, so'ngra hozirda mavjud bo'lgan toPrecision () usulini chaqiradi. Shunday qilib, ko'p odamlar xato qilib, JSda hamma narsa ob'ekt deb o'ylashadi.

Yana nima bo'layotganini chalg'itish va noto'g'ri tushunishning yana bir misoli bor. Mana kod:

Var str = "str"; str.test = 'test'; // xato bo'lmaydi, dastur ishlashda davom etadi, lekin console.log (str.test); // aniqlanmagan

Agar biz, avvalgidek, bu ob'ekt deb taxmin qilgan bo'lsak, nega u yangi test xususiyatini eslay olmaganiga hayron bo'lardik. Ammo endi biz bilamizki, ibtidoiy ob'ekt sifatida aytganda, u vaqtincha String tipidagi ob'ektga o'ralgan. Ammo operatsiya tugagandan so'ng, bu o'rash yo'qoladi va u bilan birga yangi mulkiy sinov o'tkaziladi. Gap shundaki, sehr yo'q.

Aslida, oldinga qarab, ibtidoiy ob'ektga o'ralgan holda, butun meros zanjiri quriladi (bu haqda keyinroq gaplashamiz), lekin aslida shunday "matryoshka" chiqadi:

Ob'ekt (raqam)<примитив>)). JS -dagi har qanday ob'ektning ota -onasi, u yoki bu tarzda, Object bo'ladi. Ob'ektdagi xususiyatni chaqirganingizda, qidiruv butun "matryoshka" orqali o'tadi, u bu xususiyatni ob'ektlardan birida topguncha yoki aniqlanmagan holda qaytaradi yoki agar siz usul qidirayotgan bo'lsangiz, u istisno qiladi. Shunday qilib, ibtidoiy ob'ekt mavjud Ob'ekt xususiyatlariga ham ega. Biz ikkinchi maqolada prototipik meros qanday ishlashi va uning murakkabligi haqida gaplashamiz.

Men chiqarishni istagan ikkinchi maqolaning qiziqishi uchun men konstruktor funktsiyalari bilan bog'liq yana bir nuqta haqida gaplashaman - bu turdagi konvertatsiya. JS kuchli yozilgan til emas. Bu shuni anglatadiki, o'zgaruvchini e'lon qilish paytida biz uning qaysi turini ko'rsatishga majbur emasmiz va bundan tashqari, dastur ishlayotganda, bu o'zgaruvchiga har qanday mutlaq turdagi ma'lumotlarni kiritish mumkin. Shuningdek, biz, masalan, matematik operatsiyalarda string o'zgaruvchilarini yoki aksincha, biriktirish operatsiyalaridagi sonlarni ishlatishimiz mumkin. Misol:

Var str = "abc"; str + 1; // "abc1"

Bu erda 1 -sonli ibtidoiy simli ibtidoiyga aylantiriladi. Ob'ektlarda bu xususiyat toString () usulini chaqirish orqali mavjud, raqamli turdagi ob'ektlarda, qiymatlar turi iborasini qaytaradigan valueOf () usuli mavjud. Ammo biz aytdikki, faqat ob'ektlar usullarga ega bo'lishi mumkin. Shunday qilib, ibtidoiyni bir turdan ikkinchisiga o'tkazish jarayonida, shuningdek, ob'ektga o'ralish bormi? Sizni ishontirib aytamanki, yo'q. Bu usul konstruktor funktsiyasi yangi operatorsiz tarjimon tomonidan chaqirilganda aniq nomlanadi. Qanday yangi sehrli operator va u holda konstruktor funktsiyasi chaqirilganda nima bo'ladi va bunday konstruktor funktsiyasi nima, biz keyingi maqolada gaplashamiz. Hozircha, mening so'zlarimni qabul qiling - turdagi konvertatsiya darhol sodir bo'ladi - ibtidoiydan ibtidoiygacha.

Albatta, hozircha javoblardan ko'ra ko'proq savollar bor, lekin ishoning, ikkinchi maqolani o'qib bo'lgach, hamma narsa shaffofroq bo'ladi. Bu erda men asosan bir qancha savollarni qiziqtirdim va ko'tardim - aytganda, ongni hayajonlantirdim. Shunga qaramay, ushbu maqoladan nimanidir o'rganish mumkin:
1. "JSda hamma narsa - bu ob'ektlar" degan keng tarqalgan fikrga qaramay - bunday emas, biz dasturchi uchun mavjud bo'lgan 6 ta ma'lumot turidan 5 tasi ibtidoiy va faqat bittasi ob'ekt turini anglatishini bilib oldik.
2. Ob'ektlar haqida, biz bu kalit-qiymat juftlarini o'z ichiga olgan ma'lumotlar strukturasi ekanligini bilib oldik. Qachon qiymat har qanday ma'lumot turiga ega bo'lishi mumkin (va bu ob'ektning mulki bo'ladi) yoki funktsiya (va bu ob'ektning usuli bo'ladi).
3. Lekin ibtidoiylar ob'ekt emas. Garchi siz ular bilan ob'ekt bilan ishlashingiz mumkin bo'lsa -da (va bu ibtidoiy ob'ekt degan noto'g'ri tushunchaga olib keladi), lekin ...
4. O'zgaruvchilar oddiy (so'zma -so'z) usulda (var a = 'str'), yoki konstruktor funktsiyasi (o'rash) orqali e'lon qilinishi mumkin (var a = new String ('str')). Ikkinchi holda, biz endi ibtidoiy emas, balki String () o'rash funktsiyasi tomonidan yaratilgan ob'ektni olamiz. (biz sehrli yangi operator nima ekanligini va konstruktor funktsiyasi nima ekanligini bilib olamiz).
5. Biz o'rgimchakni ibtidoiy (yangi String ('str')) ustiga yaratish orqali u bilan ob'ekt sifatida ishlash mumkinligini bilib oldik. Aynan mana shu o'rash vositasi, biz ob'ekt bilan bo'lgani kabi, u bilan ishlashga harakat qilganimizda, lekin operatsiya tugagandan so'ng, u yo'q qilinadi (shuning uchun ibtidoiy hech qachon biz tayinlagan mulkni eslay olmaydi. it a.test = 'test' - test xossasi o'rash bilan yo'qoladi).
6. Ob'ektlarda toString () usuli borligini bilib oldik, u ob'ektning mag'lubiyatli tasvirini qaytaradi (valueOf () turi uchun u raqamli qiymatni qaytaradi).
7. Birlashtiruvchi yoki matematik amallarni bajarayotganda, ibtidoiylar o'z turini kerakli turga qayta belgilashi mumkinligini tushundik. Buning uchun ular o'z turlarining o'rash funktsiyalaridan foydalanadilar, lekin yangi operatorsiz (str = String (str)).
8. Nihoyat, biz typeof qiymatlarni qattiq kodlangan jadvaldan olishini bilib oldik (bu erda typeof null // ob'ektiga asoslangan boshqa noto'g'ri tushuncha kelib chiqadi).

O'zgaruvchi - bu nomlangan xotira qismi bo'lib, unda siz ham ba'zi ma'lumotlarni saqlashingiz va undan olishingiz mumkin.

O'zgaruvchilar var kalit so'zi yordamida e'lon qilinadi (yaratiladi).

// xabar - var xabari o'zgaruvchisining nomi;

O'zgaruvchini yaratganingizda, unga darhol qiymat belgilashingiz mumkin.

O'zgaruvchiga "=" operatori yordamida qiymat beriladi.

// masalan, o'zgaruvchan elektron pochta xabarini yarating va qatorni belgilang " [elektron pochta himoyalangan]"var email =" [elektron pochta himoyalangan]"; // elektron pochta o'zgaruvchisini yangi qiymatga o'rnating elektron pochta =" [elektron pochta himoyalangan]";

O'zgaruvchining qiymatini olish uchun unga faqat nom bilan murojaat qilish kerak.

// masalan, elektron pochta o'zgaruvchining qiymatini brauzer konsoliga chop eting: console.log (email);

Bitta var kalit so'z bilan bir nechta o'zgaruvchini e'lon qilish uchun siz vergulni ishlatishingiz kerak.

Var narxi = 78,55, miqdori = 10, xabar;

JavaScript - bu dinamik yoki zaif yozilgan til. Bu shuni anglatadiki, o'zgaruvchini e'lon qilganda, u qabul qilishi mumkin bo'lgan ma'lumotlar turini ko'rsatishi shart emas. Shuning uchun, o'zgaruvchiga avval bitta ma'lumot turiga, so'ngra boshqasiga ega bo'lgan qiymatni qo'yish mumkin.

Har xil chiqish = "muvaffaqiyat"; // o'zgaruvchining mag'lubiyatli ma'lumotlar turiga ega chiqish = 28; // bir xil o'zgaruvchi, lekin "raqamli" ma'lumotlar turiga ega bo'lgan output = true; // bir xil o'zgaruvchi, lekin allaqachon boolean qiymatni saqlaydi

O'zgaruvchining qiymati cheksiz ko'p marta o'zgartirilishi mumkin.

// yaratildi o'zgaruvchan yosh var yoshi; // o'zgaruvchan yoshga 67 yosh = 67 qiymati beriladi; // o'zgaruvchan yosh "Pensiya yoshi" yoshiga o'rnatildi = "Pensiya yoshi"; // o'zgaruvchan yosh 55 yosh = 55 ga o'rnatildi;

Mijoz tomonini ishlab chiqishda ma'lum bir o'zgaruvchida faqat bitta ma'lumot turini ishlatish yaxshi amaliyotdir, ya'ni. o'zgaruvchiga har xil turdagi ma'lumotlar qiymatlarini yozmang. O'zgaruvchida qanday turdagi ma'lumotlarni kutish kerakligini tushunish uchun o'zgaruvchini yaratishda uni ma'lum qiymat bilan boshlash tavsiya etiladi.

O'zgaruvchining nomi harflar, raqamlar va $ va _ belgilaridan iborat bo'lishi mumkin. Bunday holda, o'zgaruvchining birinchi belgisi raqam bo'lmasligi kerak. Bundan tashqari, ajratilgan so'zlarni o'zgarmaydigan nom sifatida ishlatish mumkin emas.

// ikkita o'zgaruvchini yaratish, birinchi o'zgaruvchiga telefon, ikkinchisiga massaj; var telefon, xabar;

O'zgaruvchan nomdagi harflarning holati muhim. Ya'ni, masalan, o'zgaruvchan telefon va Telefon ikki xil o'zgaruvchidir.

Agar qat'iy rejim ishlatilmasa, var kalit so'zisiz asl qiymati o'zgaruvchini yaratishingiz mumkin.

Narxi = 250.00; // o'zgaruvchini yarating va uni 250.00 foiz = "20%" bilan boshlang; // o'zgaruvchini yarating va uni "20%" qatori bilan boshlang.

Lekin bu tarzda o'zgaruvchilarni yaratish tavsiya etilmaydi.

Ma'lumot turlari

JavaScript -da ma'lumotlar turlarini ibtidoiy va ob'ekt turlariga bo'lish mumkin.

Boshlang'ich ma'lumotlar turlarini o'z ichiga olgan o'zgaruvchilar qiymatni aniq saqlaydi.

JavaScript 5 ta oddiy ma'lumot turini ajratadi:

  • raqam (raqam);
  • tor (tor);
  • boolean turi (boolean);
  • nol;
  • aniqlanmagan.

Agar bitta o'zgaruvchiga ibtidoiy ma'lumotlar turini o'z ichiga olgan qiymat tayinlansa, u o'z qiymatining nusxasini oladi.

Var x = 77, y = x; x = 55; y; // 77

Ob'ektni o'z ichiga olgan o'zgaruvchilar, aslida, ob'ektni o'zi saqlamaydi, balki unga havola.

Agar siz bir o'zgaruvchiga ob'ektni o'z ichiga olgan qiymatni tayinlasangiz (unga havola), u ham unga havola oladi. Ushbu operatsiya natijasida bu ikkita o'zgaruvchida bir xil ob'ektga havola bo'ladi.

// 1 -misol (ma'lumotlar turi "ob'ekt" bilan) var coord1 = (x: 77, y: 100), coord2 = coord1; koordinat1.x = 55; // ob'ektning x xossasini yangi coord2.x qiymatiga o'rnating; // 55, chunki coord1 va coord2 bir xil ob'ektga havolani o'z ichiga oladi // 2 -misol (ma'lumotlar turi "massiv" bilan) var coord1 =, coord2 = coord1; koordinat1 = 55; // 0 indeksli elementni yangi koordinat2 qiymatiga o'rnating; // 55, chunki coord1 va coord2 bir xil ob'ektga havolani o'z ichiga oladi // 3 -misol (ma'lumotlar turi "sana" bilan) var sana1 = yangi sana (2018,00,01), sana2 = sana1; date2 = date2.setDate (date2.getDate () + 7); // sanani 7 kunga oshirish sana1; // 01.07.2018, chunki date1 va date2 bir xil ob'ektga havolani o'z ichiga oladi

Raqam

JavaScript ma'lumotlaridagi raqam turi umumiydir. U butun va kasr sonlarni ifodalash uchun ishlatiladi.

Var int = 5; // tamsayı var float = 5.98; // kasrli raqam

JavaScript-da raqamlarni ko'rsatish formati IEEE 754-2008 standartiga muvofiq amalga oshiriladi.

JavaScript -dagi butun sonlar faqat o'nlik belgilar bilan emas, balki sakkizlik (0) yoki ham ko'rsatilishi mumkin o'n oltilik sanoq tizimi (0x) Qavs ichida berilgan prefikslar yordamida:

Var int = 010; // 8 int = 055; // 45 int = 0xFF; // 255 int = 0xB8; // 184

Raqamlarni yozish mumkin eksponensial:

Var soni = 2e3; // 2 * 10 ^ 3 sonining eksponensial yozuvi (2000) num = 2e-3; // 2 * 10 ^ -3 (0,002) son = 3,2e3 sonining eksponent ko'rsatkichi; // 3200 raqam = 1.5e-2; // 0.015

Raqamli ma'lumotlar turi raqamlarga qo'shimcha ravishda o'z ichiga oladi maxsus raqamli qiymatlar:

  • Cheksizlik (musbat cheksizlik);
  • -cheksizlik (salbiy cheksizlik);
  • NaN (raqam emas).

Infinity maxsus qiymati juda katta musbat sonni bildiradi, ya'ni. JavaScript -da ko'rsatib bo'lmaydigan raqam, chunki u juda katta.

Maxsus qadriyatlar -Infinity, aksincha, juda katta manfiy son, ya'ni. JavaScript bilan ifodalana olmaydigan raqam, chunki u ham juda katta.

Qaysi bo'lishini hisoblash natijasida ifodalarga misol maxsus raqamli qiymatlar qaytariladi:

5/0; // Cheksizlik -5/0; // -Infinity Math.pow (10,399); // Infinity (10 399 kuchiga qadar) Math.pow (10.399); // -Infinity (399 kuchiga -10)

NaN qiymati JavaScript hisoblay olmaydigan matematik operatsiyalarni bajarish natijasida qaytariladi.

5 - "Salom"; // NaN (5 -sondan chiziqni olib tashlang) 1000 / "20px"; // NaN (qatorga bo'linadigan raqam) rost * "1rem"; // NaN (boolean haqiqiy satr bilan ko'paytiriladi)

Aytgancha, juda qiziq narsa shundaki, JavaScript -dagi NaN qiymati hech narsaga teng emas, shu jumladan o'zi ham.

NaN == NaN; // noto'g'ri NaN === NaN; // yolg'on

Mantiqiy ma'lumotlar turi

Mantiqiy ma'lumotlar - bu faqat ikkita qiymatga ega: haqiqiy va noto'g'ri.

Var a = rost; var b = noto'g'ri;

Ip

String - bu JavaScript -ni matnni ifodalash uchun foydalanadigan ma'lumotlar turi.

JavaScript satri 0 yoki undan ko'p belgidan iborat bo'lishi mumkin.

JavaScript har doim satr formati sifatida Unicode kodlashidan foydalanadi.

Stringni yaratish (string literal) matnni bitta yoki ikkita tirnoq ichiga olish.

"JavaScript"; "ECMAScript";

JavaScript -da bitta va ikkita tirnoq o'rtasida farq yo'q.

Ammo, ba'zi hollarda, faqat ikkita tirnoq emas, balki bitta tirnoqdan foydalanish mantiqan to'g'ri keladi.

Masalan, satrda ikkita tirnoq bo'lsa, uni bitta tirnoq ichiga qo'shish qulayroq bo'ladi. Bu undagi ikkita tirnoqdan qochish zaruratini bartaraf etadi.

"" ECMAScript ""; // qochish mumkin emas (bitta tirnoq yordamida) "\" ECMAScript \ ""; // qochib ketdi

JavaScript satrida maxsus belgilar bo'lishi mumkin. Masalan, \ n (qator tasmasi), \ t (tab), \ r (vagon qaytarilishi) va hk.

"Bu taklif. \ NBu ham taklif, lekin u yangi satrdan boshlanadi.";

Stringlar yordamida siz qo'shilish (birlashma) operatsiyasini yoki boshqacha aytganda, birikmani bajarishingiz mumkin. Buning uchun "+" operatori ishlatiladi. Ushbu operatsiyaning g'oyasi, birinchi qatorning oxiriga ikkinchi qatorni qo'shishdir.

"Men yaxshi ko'raman" + "JavaScript"; // Men JavaScript -ni yaxshi ko'raman

"Aniqlanmagan" qiymati

aniqlanmagan - bu bitta aniqlanmagan qiymatga ega bo'lgan maxsus ibtidoiy ma'lumotlar turi.

Ushbu turdagi ma'lumotlar e'lon qilinmagan o'zgaruvchiga ega, unga hali qiymat berilmagan.

Var soni; // aniqlanmagan

Noma'lum qiymat, shuningdek, mavjud bo'lmagan ob'ekt xususiyatiga kirganda qaytariladi.

Var obj = (); // bo'sh ob'ekt obj.prop; // aniqlanmagan

"Null" qiymati

null - null qiymatiga ega bo'lgan maxsus ibtidoiy ma'lumotlar turi.

null - bu "hech narsa" yoki "noma'lum qiymat" ma'nosiga ega bo'lgan maxsus qiymat, ya'ni. aniq hech narsani anglatmaydi.

Ob'ekt

Ob'ekt-bu ism-qiymat juftlaridan iborat ma'lumotlar tuzilmasi.

Ob'ektni so'zma -so'z yozish yordamida ob'ekt yaratish quyidagicha amalga oshiriladi:

(ism_1: qiymat_1, ism_2: qiymat_2, ism_3: qiymat_3, ...)

Ko'rib turganingizdek, ism qiymatdan ikki nuqta bilan, juftlar esa vergul bilan ajratilgan.

Bundan tashqari, agar funktsiya juftlik qiymati vazifasini bajarsa, u bu ob'ektning usuli deb ataladi. Boshqa barcha juftliklar, ya'ni. funktsiya qiymat sifatida ishlatilmaydigan juftliklar ob'ekt xossalari deyiladi.

Boshqacha qilib aytganda, ob'ekt - bu xususiyatlar va usullardan tashkil topgan ma'lumotlar tuzilmasi.

Var person = (ismi: "Vitaliy", yoshi: 27, getAge: function () ("Yoshi:" + bu yoshga qaytish;))

Ob'ekt xususiyatlariga nuqta yoki qavs yordamida kirish mumkin.

// age xususiyatining qiymatini brauzer konsoliga chop etish // 1 tomonlama (nuqta orqali) console.log (person.age); // 2 -usul (qavs yordamida) console.log (odam ["yoshi"]); // getAge usulini chaqiring; u qaytaradigan qiymat konsolga chop etiladi. console.log (person.getAge ());

Operator turi

Typeof operatori ifodaning ma'lumotlar turi haqidagi ma'lumotni mag'lubiyat sifatida olish uchun ishlatiladi.

Typeof operatorining sintaksisi (qavssiz variant):

Ifoda turi

Typeof operatorining sintaksisi (Qavslar yordamida):

Turi (ifoda)

Ism, yosh = 37, elektron pochta = " [elektron pochta himoyalangan]", isLicense = haqiqiy, qiziqish: null, lastExperience: (davr:" 2011 yil iyun - 2018 yil iyun ", joy:" ISACA, Moskva ", pozitsiya:" Veb -dizayner "), getExperience: function () (lastExperience.period + ga qaytish) "(" + lastExperience.position + "-" + lastExperience.place + ")";);); ism turi; // "aniqlanmagan" yosh turi; // "Litsenziyaning" raqami "; / "object" (1) typeof lastExperience; // "object" getExperience; // "function" (2) / * (1) - bu tilda birinchi marta qo'llanilganidan beri mavjud bo'lgan xato. moslikni saqlab qolish uchun tuzatilgan va bu skriptlarni yozishda e'tiborga olinishi kerak; null - bu oddiy ma'lumotlar turi, bu ob'ekt emas * / / * (2) - operator turini funktsiyalarni alohida ajratish juda qulay; JavaScipt -dagi funktsiya ham ob'ekt hisoblanadi; agar siz quyidagi qurilishni bajargan bo'lsangiz, buni osongina tekshirishingiz mumkin: * / typeof getExperience .__ protokoli __.__ proto__ // "ob'ekt" (prototip funktsiyasi ob'ekt)

Turg'unlar

ECMAScript 6 ning chiqarilishi bilan konstantalarni yaratish mumkin bo'ldi. Bu const kalit so'zi yordamida amalga oshiriladi.

COST COLOR_RED = "# ff0000";

Sobit - bu o'zgaruvchan, qiymati o'zgarishdan himoyalangan. Bular. qiymatni o'zgartirishga urinishda xato bo'ladi.

COST COLOR_RED = "# ff0000"; COLOR_RED = "# f44336"; // Qo'lga olinmagan TypeError: doimiy o'zgaruvchiga tayinlash.

Agar, masalan, konstantada ob'ekt bo'lsa, uni o'zgartirib bo'lmaydi, aniqrog'i unga havola. Ammo bu ob'ektning xususiyatlarini o'zgartirish mumkin.

Const COLORS = (qizil: "# ff0000", yashil: "# 00ff00", ko'k: "# 00ff00") COLORS = ["# ff0000", "# 00ff00", "# 00ff00"]; // Qo'lga olinmagan TypeError: doimiy o'zgaruvchiga tayinlash. COLORS.green = "# 4caf50";

Boshqa har qanday dasturlash tilida bo'lgani kabi, JS da ma'lumotlar turlari quyidagilarga bo'linadi.

- Adabiyotlar va o'zgaruvchilar

- massivlar, funktsiyalar va ob'ektlar

Adabiyotlar:

Adabiyotlar har qanday dasturlash tilidagi eng ibtidoiy birliklar, masalan, raqamlar va belgilar. JavaScript -da harflar raqamli va satrlarga bo'linadi:

Raqamli harflar String harflari

4.5e + 2 "JavaScript -dagi ma'lumotlar turlari"

Belgilash va taqqoslash operatsiyalari uchun JS kodidagi harflardan foydalanishingiz mumkin:

var pi = "PI raqami";

agar (q == "b") q = b + 1;

O'zgaruvchilar:

Xo'sh, qanday o'zgaruvchisiz dasturlash tili. Umuman olganda, o'zgaruvchilarni har qanday dasturlash tilining asosi deb atash mumkin. Deyarli hech qanday funktsiya, tsikl yoki bayonot o'zgaruvchisiz ishlatilmaydi.

JavaScript sizga ushbu ma'lumot turiga nafaqat harfiy qiymatlarni, balki butun massivni, butun funktsiyani yoki ob'ekt nomini belgilash imkonini beradi. Siz o'zgarmaydiganlarni dasturning istalgan joyida yoki var iborasi yordamida o'rnatishingiz mumkin:

id = window.close ();

var arr = new Array ();

ob = hujjat.formlari;

JavaScript -da ikkita asosiy massiv turi mavjud:

tarjimonga o'rnatilgan (hujjat shakli, hujjat tasviri, ...)

foydalanuvchi tomonidan aniqlangan

Massiv yangi Array () konstruktsiyasi yordamida yaratiladi;

a = yangi qator (); b = yangi qator (15); c = yangi qator (15.33, "qiymat 3");

Birinchi holda, a o'zgaruvchiga bo'sh massiv, ikkinchi o'zgaruvchiga b, birinchi qiymati 15 raqami bo'lgan massiv, nihoyat, uchinchi holatda, c o'zgaruvchiga 3 qiymatli massiv beriladi. , uchinchisi mag'lubiyatga to'g'ri keladi.

JSda massivlarni ishlashning bir necha asosiy usullari mavjud:

qo'shilish (); teskari (); tartib ();

Quyida biz ko'rib chiqadigan asosiy operatorlar ro'yxati keltirilgan.

var; (...); agar; vaqt; uchun; uchun ... ichida; tanaffus; davom ettirish; qaytish.

3. JavaScript -dagi o'zgaruvchilar va tayinlash operatori.

Asosiy tayinlash operatori odatdagi = tenglama bo'lib, u chap operandga o'ngdagi operandning qiymatini beradi.

Qolgan operatorlar quyidagi shakllar uchun stenografiya: Qisqartirilgan operator ma'nosi

x + = y x = x + y

x - = y x = x - y

x * = y x = x * y

x / = y x = x / y

x% = y x = x% y

x<<= y x = x << y

x >> = y x = x >> y

x >>> = y x = x >>> y

x & = y x = x & y

x ^ = y x = x ^ y

x | = y x = x | y

4. JavaScript -dagi operatorlar.

Operatorlar JavaScript buyruqlar oqimini boshqarish uchun ishlatiladi. Bitta ob'ektni bir nechta satrlarga bo'lish mumkin yoki aksincha, bir qatorda bir nechta operator bo'lishi mumkin.

Siz bilishingiz kerak, birinchi navbatda, funktsiya ta'riflari kabi bayonot bloklari jingalak qavslar ichiga olinishi kerak. Ikkinchidan, nuqta -vergul alohida bayonotlarni ajratish uchun ishlatiladi. Agar siz nuqta -vergulni tashlab qo'ysangiz, dasturning xatti -harakatini oldindan aytib bo'lmaydi.

JavaScript -da dastur matnini formatlash bo'yicha qat'iy talablar bo'lmaganligi sababli, matnni yaxshiroq o'qilishi uchun siz chiziqlar tasmasi va indentatsiya belgilarini kiritishingiz mumkin.

JavaScript -da ishlatiladigan operatorlar:

tanaffus, izoh berish, davom etish, uchun, uchun ... in, funktsiya, agar ... boshqa

JavaScript yoki Js(qisqartirilgan) oson til emas va yangi ishlab chiquvchilar bu haqda darhol bilishmaydi. Avvaliga ular asosiy narsalarni o'rganadilar va hamma narsa rang -barang va chiroyli ko'rinadi. Bir oz chuqurroq borganda, miya tez -tez chiqarib yuboradigan JavaScript -ni, ob'ektlarni, qo'ng'iroqlarni va shunga o'xshashlar paydo bo'ladi.

JavaScript -da o'zgaruvchining turini to'g'ri tekshirish muhim. Aytaylik, siz o'zgaruvchining massa yoki ob'ekt ekanligini bilmoqchimisiz? Qanday qilib uni to'g'ri tekshirish kerak? Bunday holda, tekshirish paytida hiyla -nayranglar bo'ladi va bu yozuv haqida bo'ladi. Keling, darhol boshlaylik.

O'zgaruvchining turini tekshirish

Masalan, o'zgaruvchining ob'ekt, massiv, satr yoki raqam ekanligini tekshirish kerak. Buning uchun typeof -dan foydalanishingiz mumkin, lekin u har doim ham haqiqatni bermaydi va men quyida keltirilgan misolda buning sababini ko'rsataman.

Men bu misolni yozdim, nima uchun typeof har doim ham to'g'ri tanlov emas.

Var _comparison = (string: "string", int: 99, float: 13.555, object: (salom: "salom"), array: new Array (1, 2, 3)); // Ob'ekt kalitlari bilan qatorni qaytaradi var _objKeys = Object.keys (_comparison); uchun (var i = 0; i<= _objKeys.length - 1; i++) { // выведем в консоль тип каждой переменной console.log(typeof _comparson[_objKeys[i]]); }

Kodni bajarish natijasi:

String raqami raqami ob'ekt obyekti

To'g'ri? - Yo'q albatta. Ikkita muammo bor. Ularning har biri batafsil tavsiflanadi va yechim taklif qilinadi.

Birinchi muammo: float raqami, raqam sifatida chiqish

Comparison.float - bu raqam emas, balki raqam o'rniga float bo'lishi kerak. Buni tuzatish uchun siz quyidagi koddagi kabi tasdiqlangan funktsiyani yaratishingiz mumkin.

Var _floatNumber = 9.22; var _notFloatNumber = 9; console.log (isFloat (_floatNumber)); console.log (isFloat (_notFloatNumber)); console.log (isFloat ("")); isFloat (n) funktsiyasi (qaytarish raqami (n) === n && n% 1! == 0;)

IsFloat () funktsiyasi suzuvchi nuqta raqamlari uchun barcha qiymatlarni tekshiradi. Birinchidan, u o'zgaruvchining tengligini tekshiradi n raqam (Raqam (n) === n) va agar shunday bo'lsa, qoldiq bilan bo'linish uchun yana bir tekshirish o'tkaziladi, agar qolgan bo'lsa, boolean ( rost yoki yolg'on) natija (n% 1! == 0).

Yuqoridagi misolda u qaytadi rost, yolg'on va yolg'on... Birinchi ma'no suzmoq yozing, ikkinchisi - bu oddiy raqam va oxirgi qoidalarga mos kelmaydigan bo'sh satr.

Ikkinchi muammo: qator ob'ekt sifatida aniqlandi

Birinchi misolda, massiv ob'ekt sifatida ko'rsatildi va bu unchalik yaxshi emas, chunki ba'zida siz bu turni ishlatishingiz kerak bo'ladi va boshqa hech narsa emas.

O'zgaruvchini massiv turi uchun tekshirishning bir necha usullari mavjud.

Birinchi variant (yaxshi variant). Ma'lumotlar massivga tegishli ekanligini instansof () yordamida tekshiramiz.

Var data = new Array ("salom", "dunyo"); var isArr = Array ma'lumotlar misoli;

Ikkinchi variant (yaxshi variant). Array.isArray () usuli mantiqiy qiymatni qaytaradi, bu o'zgaruvchining massiv yoki yo'qligiga bog'liq bo'ladi ().

Var data = new Array ("salom", "dunyo"); var isArr = Array.isArray (ma'lumotlar);

Uchinchi variant (eng yaxshi, lekin eng uzun). Qulaylik uchun siz ushbu funktsiyani bajarishingiz mumkin. Ob'ekt yordamida biz shunday qilamiz. Agar Object.prototype.toString.call (ma'lumotlar) natijasi teng bo'lmasa, o'zgarmaydigan qator () emas.

Var data = new Array ("salom", "dunyo"); var isArr = Object.prototype.toString.call (ma'lumotlar) == ""; console.log (isArr);

Qulaylik funktsiyasi sifatida oxirgi natija:

IsArray (ma'lumotlar) funktsiyasi (Object.prototype.toString.call -ga qaytish (ma'lumotlar) == "")

Endi siz isArray () funktsiyasini chaqirishingiz va argument sifatida qator yoki boshqa narsalarni o'rnatishingiz va natijani ko'rishingiz mumkin.

So'zdan keyingi so'z

Yozuv dastlab rejalashtirilganidan ancha katta bo'lib chiqdi. Lekin men bundan mamnunman, chunki u JavaScript -dagi o'zgaruvchilarni tekshirishdagi qiyinchiliklar va ularni qanday aylanib o'tish haqida qisqacha va aniq tasvirlab beradi.

Agar sizda hali ham savollar bo'lsa - ularni quyida ushbu yozuvga yozing. Men yordam berishdan xursand bo'laman.

JavaScript dasturchi tomonidan yaratilgan Brendan eich Netscape -dan olingan va 1995 yil dekabr oyida LiveScript nomi bilan kiritilgan. JavaScript -ning rasmiy nomi ECMAScript bo'lsa -da, u tezda JavaScript -ga o'zgartirildi. ECMAScript ECMA (Evropa kompyuter ishlab chiqaruvchilar uyushmasi) Xalqaro tashkiloti tomonidan ishlab chiqilgan va saqlanadi.

JavaScript nima?
1) JavaScript - bu skript tili yoki skript. Skript - bu dastur kodi - ishga tushirishdan oldin oldindan ishlov berishni (masalan, kompilyatsiya) talab qilmaydigan ko'rsatmalar to'plami. JavaScript kodini veb -sahifa yuklanganda brauzer mexanizmi talqin qiladi. Brauzer tarjimoni dastlabki dastur yoki so'rovni bosqichma-bosqich tahlil qilish, qayta ishlash va bajarishni amalga oshiradi.

2) JavaScript-bu prototipik merosga ega bo'lgan ob'ektga yo'naltirilgan til. U bir nechta o'rnatilgan ob'ektlarni qo'llab-quvvatlaydi, shuningdek o'zingizning shaxsiy (moslashtirilgan) ob'ektlaringizni yaratishga yoki o'chirishga imkon beradi. Ob'ektlar prototipli ob'ektlar zanjirini tashkil qilib, xususiyatlarni bir -biridan to'g'ridan -to'g'ri meros qilib olishi mumkin.

JavaScript veb -sahifalarda

1. Skriptlarni html-hujjatga ulash

JavaScript skriptlari ko'milgan, ya'ni ularning mazmuni hujjatning bir qismidir va tashqi.js kengaytmasi bilan alohida faylda saqlanadi. Skriptlar html hujjatiga quyidagi yo'llar bilan joylashtirilishi mumkin:

yoki sahifaning tanasi.



Bu usul odatda turli xil veb -sahifalarda qayta ishlatiladigan katta skriptlar yoki skriptlar uchun ishlatiladi.

Voqealar boshqaruvchisi sifatida.
Har bir html elementida JavaScript hodisalari bor, ular ma'lum bir vaqtda yonadi. Siz html-elementga kerakli hodisani atribut sifatida qo'shishingiz va kerakli funktsiyani ushbu atribut qiymati sifatida belgilashingiz kerak. Ishdan bo'shatilgan hodisaga javoban chaqiriladigan funksiya hodisa boshqaruvchisi... Voqeani ishga tushirish natijasida bog'liq kod bajariladi. Bu usul asosan qisqa ssenariylar uchun ishlatiladi, masalan, tugma bosilganda fon rangini o'zgartirish mumkin:

Ichki element

2. JavaScript -dagi ma'lumotlar turlari va o'zgaruvchilari

Kompyuterlar ma'lumotlarni qayta ishlaydi - ma'lumotlarni. Ma'lumotlar turli shakllarda yoki turlarda taqdim etilishi mumkin. JavaScript -ning ko'p funktsiyalari ob'ektlar va ma'lumotlar turlarining oddiy to'plami orqali amalga oshiriladi. Stringlar, raqamlar va mantiq bilan bog'liq funktsiyalar mag'lubiyatli, raqamli va mantiqiy ma'lumotlar turlariga asoslangan. Boshqa funktsiyalar, shu jumladan oddiy iboralar, sanalar va matematik operatsiyalar RegExp, Date va Math ob'ektlari yordamida amalga oshiriladi.

Adabiyot JavaScript -da - ma'lumotlar turining maxsus klassi, uchta ma'lumot turining bittasi - string, raqamli yoki mantiqiy:

"bu satr" 3.14 haqiqiy ogohlantirish ("Hellow"); // "Hellow" so'zma -so'z var myVariable = 15; // 15 - so'zma -so'z

Ma'lumotlarning oddiy turi bu aniq, raqamli, mantiqiy, null va aniqlanmagan kabi ma'lum turdagi ma'lumotlarning namunasidir.

2.1. JavaScript -da o'zgaruvchilar

JavaScript tomonidan qayta ishlangan ma'lumotlar o'zgaruvchilar... O'zgaruvchilar - bu dasturni bajarish paytida o'zgarishi mumkin bo'lgan ma'lumotlarni (qiymatlarni) kompyuter xotirasida saqlaydigan konteynerlar. O'zgaruvchilar bor ism, turi va ma'no.

O'zgaruvchan ism yoki identifikator, faqat az, AZ harflarini, 0-9 raqamlarini (o'zgarmaydigan nomdagi raqam birinchi bo'la olmaydi), $ belgisini (o'zgaruvchi yoki funktsiya nomidagi birinchi belgi bo'lishi mumkin) va pastki chiziqni _, bo'sh joylarni o'z ichiga olishi mumkin. ruxsat berilgan. O'zgaruvchilar nomining uzunligi cheklanmagan. O'zgaruvchan nomlarni rus alifbosidagi harflar bilan yozish mumkin, lekin tavsiya qilinmaydi, buning uchun ular Unicode -da yozilishi kerak.

JavaScript kalit so'zlarini o'zgarmaydigan nom sifatida ishlata olmaysiz. JavaScript -dagi o'zgarmaydigan nomlar katta -kichik harflarga sezgir, demak, o'zgarmaydigan var xabari; va var Xabar; - har xil o'zgaruvchilar.

O'zgaruvchi var kalit so'zidan keyin yaratiladi (e'lon qilinadi) va undan keyin o'zgaruvchining nomi, masalan, var xabari; ... O'zgaruvchini ishlatishdan oldin uni e'lon qilish kerak.

O'zgaruvchan boshlangan tayinlash operatori yordamida qiymat =, masalan, var message = "Hellow"; , ya'ni xabar o'zgaruvchisi yaratiladi va unda saqlanadi boshlang'ich"Hellow" qiymati. O'zgaruvchini qiymatsiz e'lon qilish mumkin, bu holda unga aniqlanmagan standart qiymat beriladi. Skriptni bajarish paytida o'zgaruvchining qiymati o'zgarishi mumkin. Bir xil satrda har xil o'zgaruvchilar e'lon qilinishi mumkin, ularni vergul bilan ajratish mumkin:

Xabar = "Hellow", number_msg = 6, time_msg = 50;

2.2. Ma'lumotlarning o'zgaruvchan turlari

JavaScript - bu yozilmagan til; uni e'lon qilishda ma'lum bir o'zgaruvchining ma'lumot turini ko'rsatish shart emas. O'zgaruvchining ma'lumot turi uning qiymatiga bog'liq. Ma'lumotlar bilan operatsiyalarni bajarishda o'zgaruvchining turi o'zgarishi mumkin ( dinamik quyish). Turning konvertatsiyasi ular ishlatilgan kontekstga qarab avtomatik tarzda amalga oshiriladi. Masalan, + operatori yordamida raqamli va satrli qiymatlarni o'z ichiga olgan ifodalarda, JavaScript raqamli qiymatlarni satrlarga o'zgartiradi:

Var xabari = 10 + "ta'tildan bir necha kun oldin"; // "ta'tildan 10 kun oldin" qaytadi

Typeof operatori yordamida o'zgaruvchining ma'lumotlar turini olishingiz mumkin. Bu operator mos keladigan turni aniqlaydigan qatorni qaytaradi.

35 turi; // "raqam" turini "matn" ga qaytaradi; // "string" turini qaytaradi; // "boolean" tipini qaytaradi; // aniqlanmagan "ob'ekt" turini qaytaradi; // null "aniqlanmagan" tipini qaytaradi; // "ob'ekt" ni qaytaradi

JavaScript -dagi barcha ma'lumotlar ikki guruhga bo'lingan - oddiy ma'lumotlar turlari (ibtidoiy ma'lumotlar turlari) va kompozit ma'lumotlar turlari (kompozit ma'lumotlar turlari).

TO oddiy ma'lumotlar turiga qatorli, raqamli, boolean, null va chizilmasin kiradi.

2.2.1. String turi

Ikki yoki bitta tirnoq ichiga olingan belgilar qatorini saqlash uchun ishlatiladi. Bitta yoki ikkita tirnoq ichiga olingan bo'sh belgilar to'plami bo'sh satrdir. Belgilangan raqam ham satrdir.

Pul miqdori = ""; // bo'sh satr, nol belgilar var work = "test"; var day = "Yakshanba"; var x = "150";

Siz bitta tirnoqni ikki tirnoqli qatorga kiritishingiz mumkin va aksincha. Xuddi shu turdagi tirnoq teskari chiziq belgisi bilan o'chiriladi \ (deyiladi qochish ketma -ketligi):

Document.writeln ("\" Xayrli tong, Ivan Ivanovich! \ "\ N"); // "Xayrli tong, Ivan Ivanovich!" ko'rsatiladi.

Satrlarni taqqoslash mumkin, shuningdek bog'lanish operatori +yordamida birlashtirilishi mumkin. Avtomatik majburlash raqamlar va satrlarni birlashtirishga imkon beradi. Stringlar doimiydir, mag'lubiyat yaratilgandan so'ng uni o'zgartirib bo'lmaydi, lekin boshqa satrlarni birlashtirib yangi satr yaratish mumkin.

2.2.2. Raqamli tur (raqam)

Raqamli qiymatlar uchun ishlatiladi. JavaScript -da ikkita turdagi raqamlar mavjud: butun sonlar (butun son) va suzuvchi nuqta raqamlari (suzuvchi nuqta raqami)... Butun sonlar ijobiy bo'lishi mumkin, masalan, 1, 2 va manfiy, masalan, -1, -2 yoki nol. 1 va 1.0 bir xil qiymatdir. JavaScript -dagi ko'p sonlar o'nlik belgilar bilan yozilgan va sakkizlik va o'n oltilik tizimlardan ham foydalanish mumkin.

V o'nlik tizim, raqamli o'zgaruvchilar qiymatlari 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 arab raqamlari yordamida o'rnatiladi.

V sakkizta raqamlar formati - 0 dan 7 gacha bo'lgan raqamlarni o'z ichiga olgan va 0 prefiksidan boshlangan ketma -ketlik.

Uchun o'n oltilik formatida 0x (0X) prefiksi qo'shiladi, undan keyin 0 dan 9 gacha bo'lgan raqamlar ketma -ketligi yoki 10 dan 15 gacha bo'lgan qiymatlarga mos keladigan (A) dan f (F) gacha bo'lgan harflar qo'shiladi.

Var a = 120; // butun sonli o'nlik raqamli qiymat var b = 012; // sakkizta format var c = 0xfff; // o'n oltilik format var d = 0xACFE12; // o'n oltilik format

Suzuvchi nuqta raqamlari kasrli kasrli raqamlar yoki ular eksponensial notada ifodalangan sonlardir. Raqamlarning eksponensial yozuvi quyidagi shaklni oladi: kasrli kasrli son, undan keyin e harfi, uni katta va kichik harflar bilan belgilash mumkin, keyin ixtiyoriy + yoki - belgisi va butun sonli ko'rsatkich.

Var a = 6.24; // haqiqiy son var b = 1.234E + 2; // haqiqiy raqam, 1,234 X 10² ga teng var c = 6.1e-2; // haqiqiy raqam, 6,1 X 10‾² ga teng

2.2.3. Boolean turi

Bu tur ikkita qiymatga ega: rost (rost), noto'g'ri (noto'g'ri). Shartlarni solishtirish va tekshirish uchun ishlatiladi.

Var answer = confirm ("Bu maqola sizga yoqdimi? \ N OK ni bosing. Agar yo'q bo'lsa, Bekor qilish tugmasini bosing."); if (javob == rost) (ogohlantirish ("Rahmat!");)

Oddiy qiymatlarning maxsus turlari ham mavjud:
null turi- bu turdagi mavjud bo'lmagan ob'ektlarni ko'rsatish uchun ishlatiladigan bitta null qiymatga ega.

aniqlanmagan turi- aniqlanmagan o'zgaruvchining turi o'zgaruvchining boshlang'ich qiymatining yo'qligini, shuningdek ob'ektning mavjud bo'lmagan xususiyatini bildiradi.

Kompozit ma'lumotlar turlari bir nechta qiymatdan iborat. Bularga ob'ektlar va maxsus turdagi ob'ektlar - massivlar va funktsiyalar kiradi. Ob'ektlar xususiyatlari va usullarini o'z ichiga oladi, massivlar indekslangan elementlar to'plami va funktsiyalar ko'rsatmalar to'plamidan iborat.

2.3. Global va mahalliy o'zgaruvchilar

O'zgaruvchilar ko'lami bo'yicha bo'linadi global va mahalliy. Ko'rinish maydoni skriptning o'zgarmaydigan nomi shu o'zgaruvchiga bog'langan qismini ifodalaydi va uning qiymatini qaytaradi. Funktsiya tanasida e'lon qilingan o'zgaruvchilar deyiladi mahalliy, ular faqat shu funksiyada ishlatilishi mumkin. Mahalliy o'zgaruvchilar tegishli funktsiya bilan birga yaratiladi va yo'q qilinadi.

Element ichida e'lon qilingan o'zgaruvchilar