You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/04-variables/article.md
+44-44Lines changed: 44 additions & 44 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,24 +1,24 @@
1
1
# Dəyişənlər
2
2
3
-
Çox vaxt JavaScript applikasiyalarının məlumatlar ilə işləmələri lazımdır. Məsələn:
4
-
1.onlayn mağaza applikasiyasında satılan mallar və alış-veriş səbəti haqqında məlumatlar lazımdır.
5
-
2.çat applikasiyasında isitfadəçilər, ismarıclar və başqa maddələr haqqında məlumatlar lazımdır.
3
+
Çox vaxt JavaScript tətbiqləri məlumatlarla işləməlidir. Məsələn:
4
+
1.Onlayn mağaza -- məlumatlar satılan məhsulları və alış-veriş səbətini əhatə edə bilər.
5
+
2.Çat tətbiqi -- məlumatlar istifadəçiləri, mesajları və daha çoxunu ehtiva edə bilər.
6
6
7
-
Məlumatları saxlamaq üçün dəyişənlərdən istifadə edilir.
7
+
Dəyişənlər bu məlumatları saxlamaq üçün istifadə olunur.
8
8
9
9
## Dəyişən
10
10
11
-
[Dəyişən](https://en.wikipedia.org/wiki/Variable_(computer_science)), məlumat üçün üçün "adlı saxlama yeridir." Dəyişənlər ilə mağaza malları, applikasiyaya ziyarət edənlər və digər məlumatları saxlamaq mümkündür.
11
+
[Dəyişən (variable)](https://en.wikipedia.org/wiki/Variable_(computer_science)), məlumatlar üçün "adlandırılmış yaddaş" yeridir. Biz dəyişənlərdən məhsulları, ziyarətçiləri və digər məlumatları yadda saxlamaq üçün istifadə edə bilərik.
12
12
13
13
JavaScript-də dəyişən yaratmaq üçün `let` açar sözündən istifadə edin.
14
14
15
-
Aşağıdakı ifadədə "message" adlı dəyişən yaradılır (digər sözlə, *bildirilir* ingiliscə, *declare*):
15
+
Aşağıdakı ifadə "message" adlı bir dəyişən yaradır (başqa sözlə "elan edir"):
16
16
17
17
```js
18
18
let message;
19
19
```
20
20
21
-
İndi, biz `=` təyinat operatorundan istifadə edərək bu dəyişənə məlumat təyin edə bilərik:
21
+
İndi biz mənimsətmə operatorundan (`=`) istifadə edərək bu dəyişənə bəzi məlumatlar yerləşdirə bilərik:
22
22
23
23
```js
24
24
let message;
@@ -53,9 +53,9 @@ Biz, həmçinin bir neçə dəyişəni eyni sətirdə müəyyənləşdirə bilə
53
53
let user ='Orxan', age =25, message ='Salam';
54
54
```
55
55
56
-
Bunun daha qısa olmasına baxmayaraq biz belə kod yazmağı tövsiyyə etmirik. Oxunaqlığı çoxaltmaq üçün hər dəyişən üçün ayrı sətir işlədin.
56
+
Bunun daha qısa olmasına baxmayaraq biz belə kod yazmağı tövsiyə etmirik. Oxunaqlığı çoxaltmaq üçün hər dəyişən üçün ayrı sətir istifadə edin.
57
57
58
-
Çox sətirli variantın biraz uzun olmasına baxmayaraq bunu oxumaq daha asandır:
58
+
Çox sətirli variantın bir az uzun olmasına baxmayaraq bunu oxumaq daha asandır:
59
59
60
60
```js
61
61
let user ='Orxan';
@@ -70,7 +70,7 @@ let user = 'Orxan',
70
70
message ='Salam';
71
71
```
72
72
73
-
...vı ya "vergül-birinci" stilində də müəyyənləşdirirlər:
73
+
...və ya "vergül-birinci" stilində də müəyyənləşdirirlər:
74
74
75
75
```js no-beautify
76
76
let user ='Orxan'
@@ -88,14 +88,14 @@ Siz, köhnə skriptlərdə `let` əvəzinə `var` açar sözünün işlədildiyi
88
88
*!*var*/!* message ='Salam';
89
89
```
90
90
91
-
`var`dəyişəni *az qala*`let` ilə eynidir. Bu açar sözü dəyişənin daha "köhnə" üsul ilə müəyyənləşdirir.
91
+
`var`açar sözü `let`açar sözü ilə *demək olar ki*eynidir. O da dəyişən elan edir, lakin bir qədər fərqli, "köhnə üsulla".
92
92
93
93
`let` və `var` arasında olan hiss edilməyən fərqlər var. Lakin, indi bu fərqlər bizi maralandırmır. Biz, bu fərqlər haqqında <info:var> bölməsində detallı danışacağıq.
94
94
````
95
95
96
96
## Real dünyada analogiya
97
97
98
-
"Dəyişən" konsepsiyasını yaxşı anlamaq üçün bunun, üzərində unikal adlı etiketi olan məlumatlar "qutusu" olduğunu fikirləşin.
98
+
Dəyişən anlayışını asanlıqla qavraya bilərik, əgər onu üzərində unikal ad yazılmış bir "etiket" olan məlumatlar üçün bir "qutu" kimi təsəvvür etsək.
99
99
100
100
Məsələn, `message` dəyişəni daxilində "Salam!" dəyəri olan və `"message"` adı ilə etiketlənən qutudur:
101
101
@@ -118,15 +118,15 @@ Dəyər dəyişdikdə dəyişəndə olan köhnə məlumat silinir:
118
118
119
119

120
120
121
-
Əlavə olaraq, biz iki dəyişən yaradıb birinin məlumatını o birisinə kopiyalaya bilərik.
121
+
Biz həmçinin iki dəyişən elan edib, məlumatı birindən digərinə köçürə bilərik.
Nəzərinizə çatdırmaq istəyirik ki, [Scala](http://www.scala-lang.org/) və [Erlang](http://www.erlang.org/) kimi [funksional](https://en.wikipedia.org/wiki/Functional_programming) proqramlaşdırma dillərində dəyişənin dəyişilməsinə icazə verilmir.
140
140
141
-
Bu dillərdə, dəyər "qutuya" yerləşdirildikdən sonraorada ömürlük qalır. Fərqli məlumat saxlamaq istədikdə proqramlaşdırma dili bizə yeni qutu (dəyişənin yaradılması) yaratmağa məcbur edir. Biz köhnə dəyəri yenidən təyin edə bilmirik.
141
+
Belə dillərdə, dəyər "qutunun içinə" bir dəfə yerləşdirildikdən sonra, o, orada əbədi qalır. Əgər başqa bir şey saxlamağımız lazım olarsa, dil bizi yeni bir qutu (yeni dəyişən elan etməyi) yaratmağa məcbur edir. Köhnəsini yenidən istifadə edə bilmirik.
142
142
143
-
İlk baxışda bunun biraz qəribə olmasına baxmayaraq bu dillərdə çox ciddi təkmilləşdirmə etmək mümkündür. Bundan əlavə, paralel hesablamalar kimi bəzi tapşırıqlarda bu məhdudiyyətin olmasının faydası var. Fikrinizi genişləndirmək üçün bu formalı dili öyrənməyi (hətta bunu işlətməyi planlaşdırmasanız belə) tövsiyyə edirik.
143
+
İlk baxışda bunun bir az qəribə olmasına baxmayaraq bu dillərdə çox ciddi təkmilləşdirmə etmək mümkündür. Bundan əlavə, paralel hesablamalar kimi bəzi tapşırıqlarda bu məhdudiyyətin olmasının faydası var. Fikrinizi genişləndirmək üçün bu formalı dili öyrənməyi (hətta bunu istifadə etməyi planlaşdırmasanız belə) tövsiyə edirik.
144
144
```
145
145
146
146
## Dəyişənlərin adlandırılması [#variable-naming]
@@ -159,9 +159,9 @@ let test123;
159
159
160
160
Dəyişən adı bir neçə sözdən ibarət olduqda çox zaman [camelCase](https://en.wikipedia.org/wiki/CamelCase) formatından istifadə olunur. Bu formatında ilk sözdən başqa bütün sözlər böyük hərf ilə başlayır: `myVeryLongName`.
161
161
162
-
Dəyişən adlarında dollar (`'$'`) altdan xətt (`'_'`) işarələrinin də işlədilə bilməsi maraqlıdır. Bu simvollar, hərflər kimi xüsusi mənası olmayan sadə simvollardır.
162
+
Dəyişən adlarında dollar (`'$'`), altdan xətt (`'_'`) simvollarının da istifadə edilə bilməsi maraqlıdır. Bu simvollar, hərflər kimi xüsusi mənası olmayan sadə simvollardır.
163
163
164
-
Aşağıdakı dəyişən adlar etibarlıdır:
164
+
Aşağıdakı adlar keçərlidir:
165
165
166
166
```js run untrusted
167
167
let $ = 1; // "$" adlı dəyişən təyin et
@@ -170,48 +170,48 @@ let _ = 2; // "_" adlı dəyişən təyin et
170
170
alert($ + _); // 3
171
171
```
172
172
173
-
Səhv məlumat adlarının nümunələri:
173
+
Yanlış dəyişən adlarına nümunələr:
174
174
175
175
```js no-beautify
176
176
let 1a; // dəyişən adı rəqəm ilə başlaya bilməz
177
177
178
178
let my-name; // dəyişən adında '-' kimi simvollar ola bilməz
`apple` və `AppLE` adları fərqli dəyişənlərə istinad edir.
183
183
```
184
184
185
-
````smart header="Latın adlarını işlətmək olar, amma tövsiyyə edilmir"
186
-
Kiril hərfləri və iyeroqlif daxil olmaqla istənilən dildə olan hərfləri işlətmək olar:
185
+
````smart header="Qeyri-latin hərflər istifadə etmək mümkündür, lakin tövsiyə edilmir"
186
+
Hər hansı bir dildən, o cümlədən kiril hərflərindən və hətta heroqliflərdən istifadə etmək mümkündür, məsələn:
187
187
188
188
```js
189
189
let имя = '...';
190
190
let 我 = '...';
191
191
```
192
192
193
-
Texniki olaraq, burada heç bir xəta yoxdur. Lakin, beynəlxalq ənənəyə görə dəyişən adları İngiliscə yazılır. Kiçik skript yazsaq belə bu skriptin uzun həyatı ola bilər. Digər ölkələrdə olan proqramistlər bu skripti oxumalı ola bilərlər.
193
+
Texniki olaraq, burada heç bir səhv yoxdur, belə adlar uyğundur, lakin dəyişən adlarında ingilis dilindən istifadə etmək beynəlxalq bir ənənədir. Hətta kiçik bir skript yazsaq belə, onun uzun bir ömrü ola bilər. Başqa ölkələrdən olan insanlar bir gün onu oxumağa ehtiyac duya bilərlər.
194
194
````
195
195
196
196
````warn header="Qorunan adlar"
197
-
JavaScript dilində işlədilən bəzi [qorunan sözləri](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords) dəyişən adı kimi işlətmək olmaz.
197
+
JavaScript dilində istifadə edilən bəzi [qorunan sözləri](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords) dəyişən adı kimi istifadə etmək olmaz.
198
198
199
199
Məsələn: `let`, `class`, `return` və `function` sözləri qorunur.
200
200
201
201
Aşağıdakı kodda sintaksis xətası baş verəcək:
202
202
203
203
```js run no-beautify
204
-
let let = 5; // xəta! "let" adlı dəyişən işlətmək olmaz!
205
-
let return = 5; // xəta! "return" adlı dəyişən işlətmək olmaz!
204
+
let let = 5; // xəta! "let" adlı dəyişən istifadə etmək olmaz!
205
+
let return = 5; // xəta! "return" adlı dəyişən istifadə etmək olmaz!
206
206
```
207
207
````
208
208
209
209
````warn header="`use strict`-siz təyinat"
210
210
211
-
Normalda, dəyişəni işlətməmişdən öncə bu dəyişəni yaratmaq lazımdır. Lakin, keçmişdə dəyişəni `let`kimi açar sözü işlətmədən müəyyənləşdirmək mümkün idi. Skriptlərə `use strict`əlavə etmədikdə bu formada olan kodlar işləyəcək.
211
+
Adətən, dəyişəni istifadə etməzdən əvvəl elan etməliyik. Lakin keçmişdə, sadəcə dəyəri təyin etməklə `let`istifadə etmədən də dəyişən yaratmaq texniki olaraq mümkün idi. Bu, hələ də köhnə skriptlərlə uyğunluğu qorumaq üçün skriptlərimizdə `use strict`istifadə etmədiyimiz təqdirdə mümkündür.
212
212
213
213
```js run no-strict
214
-
// qeyd: bu nümunədə "use strict" işlədilmir
214
+
// qeyd: bu nümunədə "use strict" direktivi istifadə edilmir
215
215
216
216
num =5; // "num" dəyişəni olmadıqda dəyişən yaranacaq
217
217
@@ -231,26 +231,26 @@ num = 5; // xəta: num təyin edilməyib
231
231
232
232
## Sabit dəyişənlər
233
233
234
-
Sabit (dəyişməyən) dəyişən yaratmaq istəyirsinizsə, `let` əvəzinə `const` işlədin:
234
+
Sabit (dəyişməyən) dəyişən yaratmaq istəyirsinizsə, `let` əvəzinə `const` istifadə edin:
235
235
236
236
```js
237
237
const myBirthday = '18.04.1982';
238
238
```
239
239
240
-
`const` ilə yaranan dəyişənlər "sabit dəyişənlər" adlandırılır. Bu dəyişənləri yenidən təyin etmək mümkün deyil. Dəyişənin dəyərini dəyişmək istədikdə xəta baş verəcək:
240
+
`const` istifadə edilərək elan edilmiş dəyişənlər "konstantlar/sabit dəyişənlər" adlanır. Onlar yenidən təyin edilə bilməz. Bunu etməyə cəhd edilsə, xəta yaranacaq:
241
241
242
242
```js run
243
243
const myBirthday = '18.04.1982';
244
244
245
245
myBirthday = '01.01.2001'; // xəta, sabit dəyişəni dəyişmək olmaz!
246
246
```
247
247
248
-
Proqramçı dəyişənin heç vaxt dəyişməyəcəyindən əmin olduqda dəyişəni `const` ilə təyin edərək bu dəyişənin dəyişməyəcəyini siğortalayıb digər proqramçılara bildirə bilər.
248
+
Proqramçı bir dəyişənin heç vaxt dəyişməyəcəyinə əmin olduqda, bunu `const` ilə elan edə bilər ki, bunu təmin etsin və hər kəsə açıq şəkildə bildirsin.
249
249
250
250
251
251
### Böyük hərf ilə yazılmış sabit dəyişənlər
252
252
253
-
Praktikada, çətin yadda qalan dəyərlər skript icra olunmamışdan öncə sabit dəyişələr ilə ləqəbləndirilir.
253
+
İcra edilmədən əvvəl məlum olan və yadda saxlamaq çətin olan dəyərlər üçün sabit dəyişənlərdən ləqəb (alias) kimi istifadə etmək geniş yayılmış bir praktikadır.
254
254
255
255
Bu formalı sabit dəyişənlər böyük hərf və altdan xətt ilə adlandırılırlar.
256
256
@@ -290,13 +290,13 @@ Digər sözlə, böyük hərf ilə yazılan sabit dəyişənləri yalnız "əl i
290
290
291
291
Dəyişənləri adlandırdıqda çox vacib məqam var.
292
292
293
-
Dəyişən adının saxladığı məlumatı təsvir edən təmin və mənalı adı olmalıdır.
293
+
Dəyişən adı, saxladığı məlumatı təsvir edən, aydın və konkret bir mənaya sahib olmalıdır.
294
294
295
-
Dəyişənləri adlandırmaq proqramlaşdırmada çox vacib və mürəkkəb bacarıqlardan biridir. Dəyişənin adına baxdıqda kodun yenibaşlayan və ya təcrübəli proqramçının yazdığını bilmək mümkündür.
295
+
Dəyişənləri adlandırmaq proqramlaşdırmada çox vacib və mürəkkəb bacarıqlardan biridir. Dəyişən adlarına tez bir nəzər salmaqla, kodun başlanğıc səviyyəli bir proqramçı tərəfindən yoxsa təcrübəli bir proqramçı tərəfindən yazıldığını müəyyən etmək mümkündür.
296
296
297
-
Real layihədə işlədikdə vaxtın çoxu sıfırdan kod yazmaq əvəzinə mövcud kodu dəyişməyə və artırmağa gedir. Digər tapşırıqlardan kodunuza qayıtdıqda yaxşı adlandırılmış məlumatları tapmaq daha asandır. Digər sözlə dəyişənləri yaxşı adlandırmaq lazımdır.
297
+
Real bir layihədə, vaxtın böyük hissəsi sıfırdan tamamilə ayrı bir şey yazmaqdan daha çox mövcud kod bazasını dəyişdirmək və genişləndirməyə sərf olunur. Bir müddət başqa bir işlə məşğul olduqdan sonra koda qayıtdığımızda, yaxşı işarələnmiş məlumatları tapmaq daha asan olur. Başqa sözlə, dəyişənlər yaxşı adlara sahib olduqda bu daha rahat olur.
298
298
299
-
Dəyişəni müəyyənləşdirməmişdən öncə yaxşı ad haqqında biraz fikirləşin. Bunu etdikdə faydasını görəcəksiniz.
299
+
Dəyişəni müəyyənləşdirməmişdən öncə yaxşı ad haqqında bir az fikirləşin. Bunu etdikdə faydasını görəcəksiniz.
300
300
301
301
Bəzi əməl edə biləcəyiniz yaxşı qaydalar:
302
302
@@ -307,24 +307,24 @@ Bəzi əməl edə biləcəyiniz yaxşı qaydalar:
307
307
308
308
Sadə görünür? Bunun sadə görünməyinə baxmayaraq praktikada təsvirli və dəqiq dəyişən adları düzəltmək çətindir.
309
309
310
-
```smart header="Yenidən işlət yoxsa yarat?"
311
-
Bəzi avara proqramçılar yeni dəyişən yaratmaq əvəzinə mövcud dəyişəni istifadə etməyi sevirlər.
310
+
```smart header="Yenidən istifadə et yoxsa yarat?"
311
+
Son olaraq, bəzi tənbəl proqramçılar, yeni dəyişənlər elan etmək əvəzinə, mövcud dəyişənləri yenidən istifadə etməyə meyillidirlər.
312
312
313
-
Nəticədə, bu dəyişənlər etiketi dəyişməyən, amma daxili dəyişən qutulara bənzəyirlər. Qutunun içində nəyin olduğunu heç kim bilmir. Bu səbəbdən, biz bu kodlara yaxından baxım yoxlamalıyıq.
313
+
Nəticədə, bu dəyişənlər etiketi dəyişməyən, amma daxili dəyişən qutulara bənzəyirlər. Qutunun içində nəyin olduğunu heç kim bilmir. Bu səbəbdən, biz bu kodlara yaxından baxıb yoxlamalıyıq.
314
314
315
315
Bu proqramçılar dəyişən yaratmaqda az vaxt, amma debaq zamanı on dəfə çox vaxt xərcləyirlər.
316
316
317
317
Yeni dəyişən yaratmaq pis deyil.
318
318
319
-
Modern JavaScript minifikasiya edici qurğuları və brauzerlər kodu yaxşı optimallaşdırırlar. Bu səbəbdən, çox dəyişən yaratdıqda performans problemləri yaranmayacaq. Fərqli dəyərlər üçün fərqli dəyişənlər işlətdikdə JavaScript mühərriki kodunuzu daha da yaxşı optimizasiya edə bilər.
319
+
Müasir JavaScript minifikasiya alətləri və brauzerlər kodu kifayət qədər yaxşı optimallaşdırır, buna görə performans problemləri yaratmayacaq. Fərqli dəyərlər üçün fərqli dəyişənlərdən istifadə etmək hətta mühərrikin kodunuzu daha yaxşı optimallaşdırmasına kömək edə bilər.
320
320
```
321
321
322
322
## Xülasə
323
323
324
324
Dəyişənləri `var`, `let` və ya `const` açar sözləri ilə yaratmaq mümkündür.
325
325
326
-
- `let` -- modern dəyişən yaratmaq üçün işlədilir.
327
-
- `var` -- köhnə üsulda dəyişən yaratmaq üçün işlədilir. Normalda, biz bu dəyişəndən istifadə etmirik, amma <info:var> bölməsində `let` və `var` arasında olan fərqlərdən danışacağıq.
328
-
- `const` -- `let` kimidir. Lakin, bununla yaranan dəyişənin dəyəri dəyişə bilməz.
326
+
- `let` — müasir dəyişən elanıdır.
327
+
- `var` — köhnə üsulla dəyişən elanıdır. Adətən, ondan ümumiyyətlə istifadə etmirik, lakin <info:var> <info:var> bölməsində `let` və `var` arasında olan fərqlərdən danışacağıq.
328
+
- `const` — `let` kimidir, amma dəyişənin dəyəri dəyişdirilə bilməz.
329
329
330
-
Dəyişənləri, təyin olunan dəyəri yaxşı başa salan adlar ilə adlandırmağı tövsiyyə edirik.
330
+
Dəyişənlər elə adlandırılmalıdır ki, onların içində nə olduğunu asanlıqla anlaya bilək.
0 commit comments