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/18-javascript-specials/article.md
+37-37Lines changed: 37 additions & 37 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,10 @@
1
1
# JavaScript-ի հատկանիշները
2
2
3
-
Այս գլխում, հատուկ ուշադրություն դարձնելով նրբություններին, հակիրճ կամփոփենք JavaScript-ի առանձնահատկությունները, որոնք ուսումնասիրել ենք մինչ այս:
3
+
Այս գլխում՝ հատուկ ուշադրություն դարձնելով նրբություններին, հակիրճ կամփոփենք JavaScript-ի այն առանձնահատկությունները, որոնք ուսումնասիրել ենք մինչ այս:
4
4
5
5
## Կոդի կառուցվածք
6
6
7
-
Հայտարարությունները տարանջատվում են կետ-ստորակետով.
7
+
Դրույթները տարանջատվում են կետ-ստորակետով.
8
8
9
9
```js run no-beautify
10
10
alert('Ողջույն'); alert('Աշխարհ');
@@ -25,21 +25,21 @@ alert("Այս հաղորդագրությունից հետո սխալ կլինի:
25
25
[1, 2].forEach(alert)
26
26
```
27
27
28
-
Կոդի գրելաձևին և ոճին վերաբերվող ուղեցույցների մեծ մասը խորհուրդ են տալիս, որ մենք պետք է կետ-ստորակետ դնենք յուրաքանչյուր հայտարարությունից հետո:
28
+
Կոդի գրելաձևին և ոճին վերաբերվող ուղեցույցների մեծ մասը խորհուրդ են տալիս, որ մենք պետք է կետ-ստորակետ դնենք յուրաքանչյուր դրույթից հետո:
29
29
30
-
Կոդերի բլոկներից `{...}` և դրանցով կառուցված շարահյուսական կոնստրուկցիաներից հետո կետ-ստորակետեր չեն պահանջվում՝ ինչպես ցիկլում է.
30
+
Կոդի բլոկներից `{...}` և դրանցով կառուցված շարահյուսական կոնստրուկցիաներից հետո կետ-ստորակետեր չեն պահանջվում՝ ինչպես ցիկլում է.
31
31
32
32
```js
33
33
functionf() {
34
-
// կետ-ստորակետ պետք չէ ֆունկցիայի հայտարարումից հետո
34
+
// կետ-ստորակետ պետք չէ ֆունկցիոնալ հռչակագրից հետո
35
35
}
36
36
37
37
for(;;) {
38
38
// կետ-ստորակետ պետք չէ ցիկլից հետո
39
39
}
40
40
```
41
41
42
-
...Սակայն, եթե մենք «ավելնորդ» կետ-ստորակետ դնենք, սխալ չի լինի։ Այն պարզապես կանտեսվի:
42
+
...Սակայն, եթե մենք «ավելորդ» կետ-ստորակետ դնենք, սխալ չի լինի։ Այն պարզապես կանտեսվի:
43
43
44
44
Մանրամասն՝ <info:structure>.
45
45
@@ -55,64 +55,64 @@ for(;;) {
55
55
56
56
Այդ ցուցումը պետք է լինի սքրիփթի սկզբում կամ ֆունկցիայի մարմնի սկզբում:
57
57
58
-
Առանց `"use strict"` օգտագործելու ամեն ինչ կաշխատի, բայց որոշ առանձնահատկությունների վարքագիծը կլինի հնաոճ ձևի հետ «համատեղելի» եղանակով։ Ընդհանուր առմամբ մենք կնախընտրեինք ժամանակակից վարքագիծը:
58
+
Առանց `"use strict"` օգտագործելու ամեն ինչ կաշխատի, բայց որոշ առանձնահատկությունների վարքագիծը կլինի հնաոճ ձևի հետ «համատեղելի» եղանակով։ Ընդհանուր առմամբ մենք կնախընտրենք ժամանակակից վարքագիծը:
59
59
60
-
Լեզվի որոշ ժամանակակից առանձնահատկություններ (օրինակ՝ կլասները, որոնք պետք է սովորենք հետագայում) լռեցյալ ակտիվացնում են խիստ ռեժիմը։
60
+
Լեզվի որոշ ժամանակակից առանձնահատկություններ (օրինակ՝ կլասները, որոնք կսովորենք հետագայում) անուղղակիորեն ակտիվացնում են խիստ ռեժիմը։
61
61
62
62
Ավելին՝ <info:strict-mode>։
63
63
64
64
## Փոփոխականներ
65
65
66
-
Կարող ենք հայտարարել, օգտագործելով․
66
+
Կարող են հռչակվել՝ օգտագործելով․
67
67
68
68
-`let`
69
69
-`const` (հաստատուն, չի կարող փոփոխվել)
70
70
-`var` (հին ոճ, կդիտարկենք ավելի ուշ)
71
71
72
-
Փոփոխականի անվանումը կարող է ներառել․
72
+
Փոփոխականի անվանումը կարող է պարունակել․
73
73
- Տառեր և թվեր, բայց առաջին նիշը չի կարող լինել թիվ:
74
74
-`$` և `_` նիշերը նորմալ են, համարժեք են տառերին։
75
75
- Թույլատրվում են նաև ոչ լատինական այբուբեններ և հիերոգլիֆներ, բայց սովորաբար չեն օգտագործվում:
76
76
77
-
Փոփոխականները տեսակավորվում են դինամիկ կերպով և կարող են պահել ցանկացած արժեք.
77
+
Փոփոխականները տիպավորվում են դինամիկ կերպով և կարող են պահել ցանկացած արժեք.
78
78
79
79
```js
80
80
let x =5;
81
81
x ="Պողոս";
82
82
```
83
83
84
-
Տվյալների 8 տեսակ կա.
84
+
Տվյալների 8 տիպեր կան.
85
85
86
86
-`number` ինչպես կոտորակային, այնպես էլ ամբողջ թվերի համար,
87
87
-`bigint` կամայական երկարություն ունեցող ամբողջ թվերի համար,
88
88
-`string` տողերի համար,
89
89
-`boolean` տրամաբանական արժեքների համար՝ `true/false`,
90
-
-`null`-- մեկ արժեք ունեցող տեսակ՝ `null`, նշանակում է «դատարկ» կամ «գոյություն չունի»,
91
-
-`undefined`-- մեկ արժեք ունեցող տեսակ՝ `undefined`, նշանակում է «չնշված»,
92
-
-`object` և `symbol`-- բարդ տվյալների կառուցվածքների և յուրահատուկ նույնացուցիչների համար, մենք դեռ չենք սովորել դրանք։
90
+
-`null` մեկ արժեք ունեցող տեսակ՝ `null`, նշանակում է «դատարկ» կամ «գոյություն չունեցող»,
91
+
-`undefined` մեկ արժեք ունեցող տեսակ՝ `undefined`, նշանակում է «չսահմանված»,
92
+
-`object` և `symbol` բարդ տվյալների կառուցվածքների և ունիկալ նույնականացուցիչների համար. մենք դեռ չենք սովորել դրանք։
93
93
94
94
`typeof` օպերատորը վերադարձնում է արժեքի տեսակը երկու բացառությամբ.
95
95
```js
96
96
typeofnull=="object"// սխալ լեզվում
97
-
typeoffunction(){} =="function"// ֆունկցիաները վերարտադրվում են առանձնահատուկ կերպով
97
+
typeoffunction(){} =="function"// ֆունկցիաները մշակվում են առանձնահատուկ կերպով
98
98
```
99
99
100
100
Ավելին՝ <info:variables> և <info:types>։
101
101
102
102
## Փոխազդեցություն
103
103
104
-
Մենք բրաուզերն ենք օգտագործում որպես աշխատանքային միջավայր, ուստի UI-ի (օգտվողի ինտերֆեյս) հիմնական ֆունկցիաները կլինեն.
104
+
Մենք բրաուզերն ենք օգտագործում որպես աշխատանքային միջավայր, ուստի UI-ի (օգտատիրոջ ինտերֆեյս) հիմնական ֆունկցիաները կլինեն.
: Հարց է տալիս `question`, այնուհետև վերադարձնում է այն, ինչ մուտքագրել է այցելուն կամ՝`null`, եթե այցելուն սեղմել է «Cancel»:
107
+
: Հարց է տալիս `question`, այնուհետև վերադարձնում է այն, ինչ մուտքագրել է այցելուն կամ `null`, եթե այցելուն սեղմել է «Cancel»:
108
108
109
109
[`confirm(question)`](mdn:api/Window/confirm)
110
110
: Հարց է տալիս `question` և առաջարկում ընտրություն կատարել՝ «Ok» կամ «Cancel». Ընտրությունը վերադարձվում է որպես `true/false`։
111
111
112
112
[`alert(message)`](mdn:api/Window/alert)
113
-
: Ցուցադրում է հաղորդագրություն `message`։
113
+
: Արտատպում է հաղորդագրություն `message`։
114
114
115
-
Բոլոր այս ֆունկցիաները *մոդալ* են, նրանք դադարեցնում են կոդի կատարումը և թույլ չեն տալիս այցելուներին փոխազդեցություն ունենալ էջի հետ, մինչև նրանք չպատասխանեն։
115
+
Բոլոր այս ֆունկցիաները *modal* են, նրանք դադարեցնում են կոդի գործարկումը և թույլ չեն տալիս այցելուներին փոխազդեցություն ունենալ էջի հետ, մինչև նրանք «չպատասխանեն»։
116
116
117
117
Օրինակ.
118
118
@@ -133,43 +133,43 @@ JavaScript-ը սպասարկում է հետևյալ օպերատորները.
133
133
Թվաբանական
134
134
: Կանոնավոր՝ `* + - /`, նաև `%` մնացորդի համար և `**` աստիճան բարձրացնելու համար։
135
135
136
-
Բինար գումարումը `+` միացնում է տողերը։ Եթե օպերանդներից մեկը տող է, մյուսը նույնպես վերածվում է տողի․
136
+
Բինար գումարումը `+` միացնում է տողերը։ ԵՎ եթե օպերանդներից մեկը տող է, մյուսը նույնպես փոխակերպվում է տողի․
137
137
138
138
```js run
139
139
alert( '1' + 2 ); // '12', տող
140
140
alert( 1 + '2' ); // '12', տող
141
141
```
142
142
143
143
Վերագրում
144
-
: Կա պարզ վերագրում `a = b` և համակցված վերագրում `a *= 2`։
144
+
: Կա պարզ վերագրում՝`a = b`, և համակցված վերագրում՝`a *= 2`։
145
145
146
146
Բիթային
147
-
: Բիթային օպերատորները աշխատում են 32-բիթ ամբողջ թվերի հետ ամենացածր՝ բիթային մակարդակում. տեսեք [docs](mdn:/JavaScript/Guide/Expressions_and_Operators#Bitwise)-ում, երբ դրա կարիքը լինի:
147
+
: Բիթային օպերատորները աշխատում են 32-բիթ ամբողջ թվերի հետ ամենացածր՝ բիթային մակարդակում. տեսեք [դոկումենտացիան](mdn:/JavaScript/Guide/Expressions_and_Operators#Bitwise)-ում, երբ դրա կարիքը լինի:
148
148
149
149
Պայմանական
150
150
: Միակ օպերատորը երեք պարամետրով՝ `cond ? resultA : resultB`։ Եթե `cond` պայմանը ճշմարիտ է, վերադարձվում է `resultA`, հակառակ դեպքում՝ `resultB`։
151
151
152
152
Տրամաբանական օպերատորներ
153
-
: Տրամաբանական ԵՎ `&&` ու ԿԱՄ `||` օպերատորները իրականացնում են «կարճ միացման» արժեվորում, այնուհետև վերադարձնում են արժեք՝ որտեղ կանգ են առել (պարտադիր չէ `true`/`false`). Տրամաբանական ՈՉ `!`կերպափոխում է օպերանդը տրամաբանական տեսակի և վերադարձնում է հակառակ արժեքը։
153
+
: Տրամաբանական ԵՎ `&&` ու ԿԱՄ `||` օպերատորները իրականացնում են «կարճ միացման» արժեվորում, այնուհետև վերադարձնում են արժեք՝ որտեղ կանգ են առել (պարտադիր չէ `true`/`false`). Տրամաբանական ՈՉ `!`վերածում է օպերանդը տրամաբանական տեսակի և վերադարձնում հակառակ արժեքը։
154
154
155
155
Զրոյական միավորման օպերատոր
156
156
: `??` օպերատորը փոփոխականների ցանկից հատկանշված արժեքի ընտրության հնարավորություն է տալիս: `a ?? b`-ի արդյունքը կլինի `a`, եթե այն `null/undefined` չէ, հակառակ դեպքում՝ `b`:
157
157
158
158
Համեմատություններ
159
-
: հավասարության ստուգումը `==` տարբեր տեսակի արժեքների դեպքում նրանց կերպափոխում է թվի (բացի `null` և `undefined`տեսակներից, որոնք միայն իրար կարող են հավասար լինել), այսպիսով սրանք հավասար են.
159
+
: հավասարության ստուգումը `==` տարբեր տիպերի արժեքների դեպքում նրանց փոխակերպում է թվի (բացի `null` և `undefined`տիպերից, որոնք միայն իրար կարող են հավասար լինել), այսպիսով սրանք հավասար են.
160
160
161
161
```js run
162
162
alert( 0 == false ); // true
163
163
alert( 0 == '' ); // true
164
164
```
165
165
166
-
Այլ համեմատությունները նույնպես արժեքները կերպափոխում են թվի:
166
+
Այլ համեմատությունները նույնպես արժեքները փոխակերպում են թվի:
167
167
168
-
Խիստ հավասարության օպերատորը `===` չի կատարում կերպափոխում․ նրա համար տարբեր տեսակները միշտ ունեն տարբեր արժեքների նշանակությունը։
168
+
Խիստ հավասարության օպերատորը `===` չի կատարում փոխակերպում․ նրա համար տարբեր տիպերը միշտ ունեն տարբեր արժեքների նշանակություն։
169
169
170
-
`null` և `undefined` արժեքները հատուկ են․ նրանք հավասար են `==` իրար և ուրիշ ոչնչի հավասար չեն։
170
+
`null` և `undefined` արժեքները հատուկ են․ նրանք հավասար են `==` իրար և ուրիշ ոչինչի հավասար չեն։
171
171
172
-
Մեծ/փոքր համեմատությունները տողերին համեմատում են նիշ-առ-շիշ, մյուս տեսակներին կերպափոխվում են թվի։
172
+
Մեծ/փոքր համեմատությունները տողերին համեմատում են նիշ-առ-շիշ, մյուս տիպերը փոխակերպվում են թվի։
173
173
174
174
Այլ օպերատորներ
175
175
: Կա մի քանի ալյ օպերատոր, օր․՝ ստորակետի օպերատորը։
@@ -197,7 +197,7 @@ JavaScript-ը սպասարկում է հետևյալ օպերատորները.
197
197
}
198
198
```
199
199
200
-
-`for(let...)` ցիկլում հայտարարված փոփոխականը հասանելի է միայն ցիկլի ներսում։ Բայց մենք կարող ենք նաև բաց թողնել `let`-ը և կրկին օգտագործել արդեն իսկ գոյություն ունեցող փոփոխականը:
200
+
-`for(let...)` ցիկլում հռչակված փոփոխականը հասանելի է միայն ցիկլի ներսում։ Բայց մենք կարող ենք նաև բաց թողնել `let`-ը և կրկին օգտագործել արդեն իսկ գոյություն ունեցող փոփոխականը:
201
201
-`break/continue` հրահանգները թույլ են տալիս դուրս գալ ամբողջ ցիկլից/ընթացիկ կրկնությունից: Օգտագործեք պիտակներ ներդրված ցիկլները կանգնեցնելու համար։
202
202
203
203
Մանրամասն՝ <info:while-for>։
@@ -206,7 +206,7 @@ JavaScript-ը սպասարկում է հետևյալ օպերատորները.
206
206
207
207
## Կոնստրուկցիա «switch»
208
208
209
-
կոնստրուկցիա «switch»-ը կարող է փոխարինել մի քանի `if` ստուգումներ. Համեմատությունների ժամանակ այն օգտագործում է `===` խիստ հավասարման օպերատորը։
209
+
«switch» կոնստրուկցիան կարող է փոխարինել մի քանի `if` ստուգումների. Համեմատությունների ժամանակ այն օգտագործում է `===` խիստ հավասարման օպերատորը։
210
210
211
211
Օրինակ՝
212
212
@@ -223,7 +223,7 @@ switch (age) {
223
223
break;
224
224
225
225
default:
226
-
alert("Ցանկացած արժեք՝ վերոնշյալներին ոչ հավասար");
226
+
alert("Վերոնշյալներին ոչ հավասար ցանկացած արժեք");
227
227
}
228
228
```
229
229
@@ -233,7 +233,7 @@ switch (age) {
233
233
234
234
Մենք դիտարկեցինք JavaScript-ում ֆունկցիաներ ստեղծելու երեք տարբերակ․
235
235
236
-
1. Function Declaration -- ֆունկցիան հիմնական կոդի հոսքում․
236
+
1.Ֆունկցիոնալ Հռչակագիր (Function Declaration). ֆունկցիան հիմնական կոդի հոսքում․
- Ֆունկցիաները կարող են ունենալ տեղական (local) փոփոխականներ․ դրանք հայտարարվում են իրենց մարմնի ներսում կամ պարամետրերի ցանկում. Նման փոփոխականները հասանելի են միայն ֆունկցիայի ներսում:
276
+
- Ֆունկցիաները կարող են ունենալ տեղական (local) փոփոխականներ․ դրանք հայտարարվում են իրենց մարմնի ներսում կամ պարամետրերի ցանկում: Նման փոփոխականները հասանելի են միայն ֆունկցիայի ներսում:
277
277
- Պարամետրերը կարող են ունենալ նախնական արժեք․ `function sum(a = 1, b = 2) {...}`։
278
-
- Ֆունկցիաները միշտ ինչ-որ բան են վերադարձնում. եթե չկա `return`հայտարարությունը, ապա արդյունքը `undefined` է։
278
+
- Ֆունկցիաները միշտ ինչ-որ բան են վերադարձնում. եթե չկա `return`դրույթը, ապա արդյունքը `undefined` է։
0 commit comments