Koâpincha JavaScript ilovasi maâlumotlar bilan ishlashi kerak. Mana ikkita misol:
- Onlayn doâkon â maâlumotlar sotiladigan tovarlar va xarid savatchasini oâz ichiga olishi mumkin.
- Chat ilovasi â maâlumotlar foydalanuvchilar, xabarlar va boshqa koâp narsalarni oâz ichiga olishi mumkin.
Oâzgaruvchilar bu maâlumotlarni saqlash uchun ishlatiladi.
Oâzgaruvchi
Oâzgaruvchi â bu maâlumotlar uchun ânomli xotiraâ. Biz oâzgaruvchilardan tovarlar, tashrif buyuruvchilar va boshqa maâlumotlarni saqlash uchun foydalanishimiz mumkin.
JavaScript da oâzgaruvchi yaratish uchun let kalit soâzidan foydalaning.
Quyidagi bayonot âmessageâ nomli oâzgaruvchini yaratadi (boshqacha qilib aytganda: eâlon qiladi):
let message;
Endi biz unga tayinlash operatori = yordamida maâlumot kiritishimiz mumkin:
let message;
message = 'Hello'; // 'Hello' stringini message nomli o'zgaruvchiga saqlash
String endi oâzgaruvchi bilan bogâlangan xotira maydoniga saqlandi. Biz unga oâzgaruvchi nomi orqali murojaat qilishimiz mumkin:
let message;
message = 'Hello!';
alert(message); // o'zgaruvchi mazmunini ko'rsatadi
Qisqalik uchun biz oâzgaruvchini eâlon qilish va tayinlashni bitta satrga birlashtirishimiz mumkin:
let message = 'Hello!'; // o'zgaruvchini aniqlash va qiymat berish
alert(message); // Hello!
Shuningdek, bir satrda bir nechta oâzgaruvchini eâlon qilishimiz mumkin:
let user = 'John', age = 25, message = 'Hello';
Bu qisqaroq koârinishi mumkin, ammo biz buni tavsiya qilmaymiz. Yaxshiroq oâqish uchun har bir oâzgaruvchi uchun alohida satr ishlatishni soâraymiz.
Koâp satrli variant biroz uzunroq, ammo oâqish osonroq:
let user = 'John';
let age = 25;
let message = 'Hello';
Baâzi odamlar koâp satrli uslubda bir nechta oâzgaruvchilarni aniqlaydi:
let user = 'John',
age = 25,
message = 'Hello';
Yoki hatto âvergul-birinchiâ uslubida:
let user = 'John'
, age = 25
, message = 'Hello';
Texnik jihatdan, bu variantlarning barchasi bir xil ishni bajaradi. Demak, bu shaxsiy did va estetika masalasi.
let oârniga varEski skriptlarda siz boshqa kalit soâzni ham topishingiz mumkin: let oârniga var:
var message = 'Hello';
var kalit soâzi let bilan deyarli bir xil. U ham oâzgaruvchini eâlon qiladi, ammo biroz boshqacha, âeski maktabâ usulida.
let va var orasida nozik farqlar bor, ammo ular bizga hali muhim emas. Biz ularni Eski "var" bobida batafsil koârib chiqamiz.
Hayotiy oâxshashlik
Agar uni maâlumotlar uchun âqutiâ sifatida tasavvur qilsak, unda noyob nomlangan stiker yopishtirilgan boâlsa, âoâzgaruvchiâ tushunchasini osongina tushunishimiz mumkin.
Masalan, message oâzgaruvchisini ichida "Hello!" qiymati boâlgan "message" yorligâi bilan qutiga oâxshatish mumkin:
Biz qutiga istalgan qiymatni qoâyishimiz mumkin.
Shuningdek, uni xohlagancha marta oâzgartirishimiz mumkin:
let message;
message = 'Hello!';
message = 'World!'; // qiymat o'zgartirildi
alert(message);
Qiymat oâzgartirilganda, eski maâlumotlar oâzgaruvchidan olib tashlanadi:
Shuningdek, biz ikkita oâzgaruvchini eâlon qilishimiz va biridan ikkinchisiga maâlumotlarni nusxalashimiz mumkin.
let hello = 'Hello world!';
let message;
// 'Hello world' ni hello dan message ga nusxalash
message = hello;
// endi ikkita o'zgaruvchi bir xil ma'lumotni saqlaydi
alert(hello); // Hello world!
alert(message); // Hello world!
Oâzgaruvchi faqat bir marta eâlon qilinishi kerak.
Bir xil oâzgaruvchining takroriy eâlon qilinishi xato hisoblanadi:
let message = "This";
// takroriy 'let' xatolikka olib keladi
let message = "That"; // SyntaxError: 'message' has already been declared
Demak, biz oâzgaruvchini bir marta eâlon qilishimizdan keyin unga let ishlatmasdan murojaat qilishimiz kerak.
Qiziq tomoni shundaki, sof funksional dasturlash tillari mavjud, masalan Haskell, ular oâzgaruvchi qiymatlarini oâzgartirishni taqiqlaydi.
Bunday tillarda qiymat âqutigaâ saqlangandan soâng, u abadiy u yerda qoladi. Agar biz boshqa narsani saqlashimiz kerak boâlsa, til bizni yangi quti yaratishga (yangi oâzgaruvchi eâlon qilishga) majbur qiladi. Eskisini qayta ishlatib boâlmaydi.
Dastlabki qarashda biroz gâalati tuyulishi mumkin boâlsa-da, bu tillar jiddiy ishlanmaga juda qodir. Bundan tashqari, parallel hisoblashlar kabi sohalar mavjud boâlib, bu cheklov maâlum afzalliklarni beradi.
O'zgaruvchilarni nomlash
JavaScript da oâzgaruvchi nomlari uchun ikkita cheklov mavjud:
- Nom faqat harflar, raqamlar yoki
$va_belgilarini oâz ichiga olishi kerak. - Birinchi belgi raqam boâlmasligi kerak.
Toâgâri nomlar misollari:
let userName;
let test123;
Nom bir nechta soâzdan iborat boâlganda, odatda camelCase dan foydalaniladi. Yaâni: soâzlar ketma-ket keladi, birinchisidan tashqari har bir soâz bosh harf bilan boshlanadi: myVeryLongName.
Qiziq tomoni â dollar belgisi '$' va pastki chiziq '_' ham nomlarda ishlatilishi mumkin. Ular oddiy belgilar, xuddi harflar kabi, hech qanday maxsus maânosiz.
Bu nomlar toâgâri:
let $ = 1; // "$" nomli o'zgaruvchi e'lon qilindi
let _ = 2; // va endi "_" nomli o'zgaruvchi
alert($ + _); // 3
Notoâgâri oâzgaruvchi nomlari misollari:
let 1a; // raqam bilan boshlanishi mumkin emas
let my-name; // defislar '-' nomda ruxsat etilmagan
apple va APPLE nomli oâzgaruvchilar ikki xil oâzgaruvchidir.
Kirill harflari, xitoy logogrammalar va hokazo har qanday tildan foydalanish mumkin:
let Ð¸Ð¼Ñ = '...';
let æ = '...';
Texnik jihatdan bu yerda xato yoâq. Bunday nomlar ruxsat etilgan, ammo oâzgaruvchi nomlarida ingliz tilidan foydalanish xalqaro konventsiya hisoblanadi. Kichik skript yozsak ham, uning oldida uzoq hayot boâlishi mumkin. Boshqa mamlakatlardan odamlar uni oâqishlari kerak boâlishi mumkin.
Tilning oâzi tomonidan ishlatiladigan zaxiralangan soâzlar roâyxati mavjud, ularni oâzgaruvchi nomi sifatida ishlatib boâlmaydi.
Masalan: let, class, return va function zaxiralangan.
Quyidagi kod sintaksis xatosini beradi:
let let = 5; // o'zgaruvchini "let" deb nomlab bo'lmaydi, xato!
let return = 5; // uni "return" deb ham nomlab bo'lmaydi, xato!
use strict ishlatishdan tayinlashOdatda, oâzgaruvchini ishlatishdan oldin uni aniqlashimiz kerak. Ammo eski davrlarda let ishlatmasdan shunchaki qiymat tayinlash orqali oâzgaruvchi yaratish texnik jihatdan mumkin edi. Bu eski skriptlar bilan muvofiqlikni taâminlash uchun skriptlarimizga use strict qoâymasak, hali ham ishlaydi.
// e'tibor bering: bu misolda "use strict" yo'q
num = 5; // agar "num" o'zgaruvchisi mavjud bo'lmasa, u yaratiladi
alert(num); // 5
Bu yomon amaliyot va qattiq rejimda xatolikka olib keladi:
"use strict";
num = 5; // xato: num aniqlanmagan
Konstantalar
Oâzgarmas (oâzgarmaydigan) oâzgaruvchini eâlon qilish uchun let oârniga const dan foydalaning:
const myBirthday = '18.04.1982';
const yordamida eâlon qilingan oâzgaruvchilar âkonstantaâ deb ataladi. Ularni qayta tayinlab boâlmaydi. Bunga urinish xatolikka olib keladi:
const myBirthday = '18.04.1982';
myBirthday = '01.01.2001'; // xato, konstantani qayta tayinlab bo'lmaydi!
Dasturchi oâzgaruvchi hech qachon oâzgarmasligiga ishonchi komil boâlsa, bu faktni kafolatlash va hammaga etkazish uchun uni const bilan eâlon qilishi mumkin.
Bosh harfli konstantalar
Bajarilishdan oldin maâlum boâlgan, eslab qolish qiyin boâlgan qiymatlar uchun takma nom sifatida konstantalardan foydalanish keng tarqalgan amaliyot.
Bunday konstantalar bosh harflar va pastki chiziqlar yordamida nomlanadi.
Masalan, âvebâ (oân oltilik) formatda ranglar uchun konstantalar yarataylik:
const COLOR_RED = "#F00";
const COLOR_GREEN = "#0F0";
const COLOR_BLUE = "#00F";
const COLOR_ORANGE = "#FF7F00";
// ...rang tanlashimiz kerak bo'lganda
let color = COLOR_ORANGE;
alert(color); // #FF7F00
Foydalar:
COLOR_ORANGEni"#FF7F00"dan koâra yodlash osonroq."#FF7F00"daCOLOR_ORANGEga qaraganda xato qilish osonroq.- Kodni oâqiyotganda
COLOR_ORANGE#FF7F00dan koâra ancha mazmunli.
Konstanta uchun qachon bosh harflardan foydalanishimiz va qachon oddiy nomlashimiz kerak? Keling, buni aniqlashtiriruylik.
âKonstantaâ boâlish shunchaki oâzgaruvchining qiymati hech qachon oâzgarmasligini anglatadi. Ammo baâzi konstantalar bajarilishdan oldin maâlum (qizil uchun oân oltilik qiymat kabi) va baâzi konstantalar ish vaqtida, bajarilish davomida hisoblanadi, lekin boshlangâich tayinlashdan keyin oâzgarmaydi.
Masalan:
const pageLoadTime = /* veb-sahifa yuklanish vaqti */;
pageLoadTime ning qiymati sahifa yuklanishidan oldin maâlum emas, shuning uchun u oddiy nomlanadi. Ammo bu hali ham konstanta, chunki tayinlashdan keyin oâzgarmaydi.
Boshqacha qilib aytganda, bosh harfli konstantalar faqat âqattiq kodlanganâ qiymatlar uchun takma nom sifatida ishlatiladi.
Narsalarni toâgâri nomlash
Oâzgaruvchilar haqida gapirganda, yana bir juda muhim narsa bor.
Oâzgaruvchi nomi toza, aniq maânoga ega boâlishi va u saqlaydigan maâlumotlarni tasvirlashi kerak.
Oâzgaruvchilarni nomlash dasturlashtirining eng muhim va murakkab koânikmalaridan biridir. Oâzgaruvchi nomlariga bir qarash yangi boshlovchi yoki tajribali dasturchi tomonidan yozilgan kodni aniqlash mumkin.
Haqiqiy loyihada vaqtning koâp qismi noldan butunlay alohida narsa yozishdan koâra mavjud kod bazasini oâzgartirish va kengaytirishga sarflanadi. Bir muddat boshqa ish bilan shugâullanganimizdan keyin qandaydir kodga qaytsak, yaxshi belgilangan maâlumotni topish ancha oson. Boshqacha qilib aytganda, oâzgaruvchilarning yaxshi nomlari boâlganda.
Oâzgaruvchini eâlon qilishdan oldin uning toâgâri nomi haqida oâylashga vaqt ajrating. Buni qilish sizga katta foyda keltiradi.
Bajarilishi kerak boâlgan qoidalar:
userNameyokishoppingCartkabi inson oâqiy oladigan nomlardan foydalaning.- Nima qilayotganingizni bilmasangiz,
a,bvackabi qisqartmalar yoki qisqa nomlardan qoching. - Nomlarni maksimal darajada tavsiflovchi va qisqa qiling. Yomon nomlar misollari
datavavalue. Bunday nomlar hech narsa demaydi. Ularni faqat kod konteksti oâzgaruvchi qaysi maâlumot yoki qiymatga ishora qilayotganini juda aniq qilsa ishlatish mumkin. - Jamoangizdagi va fikringizdagi atamalar boâyicha kelishing. Agar sayt tashrif buyuruvchisi âuserâ deb atalsa, biz tegishli oâzgaruvchilarni
currentVisitoryokinewManInTownoârnigacurrentUseryokinewUserdeb nomlashimiz kerak.
Oddiy eshitiladimi? Haqiqatan ham shunday, ammo amalda tavsiflovchi va qisqa oâzgaruvchi nomlari yaratish unchalik oson emas. Harakat qiling.
Va oxirgi eslatma. Baâzi dangasa dasturchilar yangi oâzgaruvchilar eâlon qilish oârniga mavjudlarini qayta ishlatishga moyil.
Natijada, ularning oâzgaruvchilari odamlar stikerlarini oâzgartirmasdan turli narsalarni tashlaydigan qutilarga oâxshaydi. Qutida hozir nima bor? Kim biladi? Yaqinroq kelib tekshirishimiz kerak.
Bunday dasturchilar oâzgaruvchi eâlon qilishda ozgina tejashadi, ammo disk raskadrovkada oân barobar koâproq yoâqotishadi.
Qoâshimcha oâzgaruvchi yaxshi, yomon emas.
Zamonaviy JavaScript minifikatorlari va brauzerlar kodni yetarlicha yaxshi optimallashtiradi, shuning uchun bu ishlash muammolarini yaratmaydi. Turli qiymatlar uchun turli oâzgaruvchilardan foydalanish hatto dvigatelga kodingizni optimallashtirashda yordam berishi mumkin.
Xulosa
Biz var, let yoki const kalit soâzlari yordamida maâlumotlarni saqlash uchun oâzgaruvchilar eâlon qilishimiz mumkin.
letâ zamonaviy oâzgaruvchi eâloni.varâ eski maktab oâzgaruvchi eâloni. Odatda biz uni umuman ishlatmaymiz, ammo agar kerak boâlsa, Eski "var" bobidaletdan nozik farqlarni koârib chiqamiz.constâletga oâxshaydi, ammo oâzgaruvchining qiymatini oâzgartirib boâlmaydi.
Oâzgaruvchilar ichida nima borligini osongina tushunishga imkon beradigan tarzda nomlanishi kerak.
Izohlar
<code>yorlig'ini ishlating, bir nechta satrlar uchun - ularni<pre>yorlig'i bilan o'rab qo'ying, 10 satrdan ortiq bo'lsa - sandbox (plnkr, jsbin, codepenâ¦)