Skip to content

Commit 761e757

Browse files
edevshGasimGasimzadaorkhan-huseyn
committed
Resolve issues
Co-authored-by: Gasim Gasimzada <me@gasim.xyz> Co-authored-by: Orkhan Huseynli <orkhan.huseyn@outlook.com>
1 parent cc5c0ab commit 761e757

File tree

1 file changed

+44
-44
lines changed

1 file changed

+44
-44
lines changed

1-js/02-first-steps/04-variables/article.md

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
# Dəyişənlər
22

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ıclarbaş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ıdaha çoxunu ehtiva edə bilər.
66

7-
Məlumatları saxlamaq üçün dəyişənlərdən istifadə edilir.
7+
Dəyişənlər bu məlumatları saxlamaq üçün istifadə olunur.
88

99
## Dəyişən
1010

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.
1212

1313
JavaScript-də dəyişən yaratmaq üçün `let` açar sözündən istifadə edin.
1414

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"):
1616

1717
```js
1818
let message;
1919
```
2020

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:
2222

2323
```js
2424
let message;
@@ -53,9 +53,9 @@ Biz, həmçinin bir neçə dəyişəni eyni sətirdə müəyyənləşdirə bilə
5353
let user = 'Orxan', age = 25, message = 'Salam';
5454
```
5555

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.
5757

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:
5959

6060
```js
6161
let user = 'Orxan';
@@ -70,7 +70,7 @@ let user = 'Orxan',
7070
message = 'Salam';
7171
```
7272

73-
... ya "vergül-birinci" stilində də müəyyənləşdirirlər:
73+
... ya "vergül-birinci" stilində də müəyyənləşdirirlər:
7474

7575
```js no-beautify
7676
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
8888
*!*var*/!* message = 'Salam';
8989
```
9090

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".
9292

9393
`let``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.
9494
````
9595
9696
## Real dünyada analogiya
9797
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.
9999
100100
Məsələn, `message` dəyişəni daxilində "Salam!" dəyəri olan və `"message"` adı ilə etiketlənən qutudur:
101101
@@ -118,15 +118,15 @@ Dəyər dəyişdikdə dəyişəndə olan köhnə məlumat silinir:
118118
119119
![](variable-change.svg)
120120
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.
122122
123123
```js run
124124
let hello = 'Salam dünya!';
125125
126126
let message;
127127
128128
*!*
129-
// 'Salam dünya' dəyərini hello dəyişənindən message dəyişəninə kopiyala
129+
// 'Salam dünya' dəyərini hello dəyişənindən message dəyişəninə kopyala
130130
message = hello;
131131
*/!*
132132
@@ -138,9 +138,9 @@ alert(message); // Salam dünya!
138138
```smart header="Funksional dillər"
139139
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.
140140
141-
Bu dillərdə, dəyər "qutuya" yerləşdirildikdən sonra orada ö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.
142142
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.
144144
```
145145
146146
## Dəyişənlərin adlandırılması [#variable-naming]
@@ -159,9 +159,9 @@ let test123;
159159
160160
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`.
161161
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.
163163
164-
Aşağıdakı dəyişən adlar etibarlıdır:
164+
Aşağıdakı adlar keçərlidir:
165165
166166
```js run untrusted
167167
let $ = 1; // "$" adlı dəyişən təyin et
@@ -170,48 +170,48 @@ let _ = 2; // "_" adlı dəyişən təyin et
170170
alert($ + _); // 3
171171
```
172172
173-
Səhv məlumat adlarının nümunələri:
173+
Yanlış dəyişən adlarına nümunələr:
174174
175175
```js no-beautify
176176
let 1a; // dəyişən adı rəqəm ilə başlaya bilməz
177177
178178
let my-name; // dəyişən adında '-' kimi simvollar ola bilməz
179179
```
180180
181-
```smart header="Case matters"
181+
```smart header="Böyük-kiçik hərflər fərq yaradır"
182182
`apple` və `AppLE` adları fərqli dəyişənlərə istinad edir.
183183
```
184184
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:
187187
188188
```js
189189
let имя = '...';
190190
let 我 = '...';
191191
```
192192
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.
194194
````
195195

196196
````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.
198198
199199
Məsələn: `let`, `class`, `return` və `function` sözləri qorunur.
200200
201201
Aşağıdakı kodda sintaksis xətası baş verəcək:
202202
203203
```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!
206206
```
207207
````
208208

209209
````warn header="`use strict`-siz təyinat"
210210

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.
212212

213213
```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
215215

216216
num = 5; // "num" dəyişəni olmadıqda dəyişən yaranacaq
217217

@@ -231,26 +231,26 @@ num = 5; // xəta: num təyin edilməyib
231231
232232
## Sabit dəyişənlər
233233
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:
235235
236236
```js
237237
const myBirthday = '18.04.1982';
238238
```
239239
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:
241241
242242
```js run
243243
const myBirthday = '18.04.1982';
244244
245245
myBirthday = '01.01.2001'; // xəta, sabit dəyişəni dəyişmək olmaz!
246246
```
247247
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.
249249
250250
251251
### Böyük hərf ilə yazılmış sabit dəyişənlər
252252
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.
254254
255255
Bu formalı sabit dəyişənlər böyük hərf və altdan xətt ilə adlandırılırlar.
256256
@@ -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
290290
291291
Dəyişənləri adlandırdıqda çox vacib məqam var.
292292
293-
Dəyişən adının saxladığı məlumatı təsvir edən təminmənalı adı olmalıdır.
293+
Dəyişən adı, saxladığı məlumatı təsvir edən, aydınkonkret bir mənaya sahib olmalıdır.
294294
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.
296296
297-
Real layihədə işlədikdə vaxtın çoxu sıfırdan kod yazmaq əvəzinə mövcud kodu dəyişməyə 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 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.
298298
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.
300300
301301
Bəzi əməl edə biləcəyiniz yaxşı qaydalar:
302302
@@ -307,24 +307,24 @@ Bəzi əməl edə biləcəyiniz yaxşı qaydalar:
307307
308308
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.
309309
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.
312312
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.
314314
315315
Bu proqramçılar dəyişən yaratmaqda az vaxt, amma debaq zamanı on dəfə çox vaxt xərcləyirlər.
316316
317317
Yeni dəyişən yaratmaq pis deyil.
318318
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.
320320
```
321321
322322
## Xülasə
323323
324324
Dəyişənləri `var`, `let` və ya `const` açar sözləri ilə yaratmaq mümkündür.
325325
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.
329329
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

Comments
 (0)