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
Sometimes, we need to perform different actions based on different conditions.
3
+
Երբեմն, մենք կարիք ենք ունենում կատարել տարբեր գործողություններ՝ կախված տարբեր պայմաններից։
4
4
5
-
To do that, we can use the`if`statement and the conditional operator `?`, that's also called a "question mark" operator.
5
+
Դա անելու համար մենք կարող ենք օգտագործել`if`դրույթը և `?` պայմանական օպերատորը: Վերջինս նաև կոչվում է «հարցական նշան»-ի օպերատոր։
6
6
7
-
## The "if" statement
7
+
## «if» դրույթը
8
8
9
-
The `if(...)`statement evaluates a condition in parentheses and, if the result is `true`, executes a block of code.
9
+
`if(...)`դրույթը արժևորում է փակագծերում նշված պայմանը և, եթե արդյունքը `true` է, ապա կատարում է կոդի բլոկը:
10
10
11
-
For example:
11
+
Օրինակ.
12
12
13
13
```js run
14
-
let year =prompt('In which year was ECMAScript-2015 specification published?', '');
14
+
let year =prompt('Ո՞ր թվականին է թողարկվել ECMAScript-2015 ստանդարտը:', '');
15
15
16
16
*!*
17
-
if (year ==2015) alert( 'You are right!' );
17
+
if (year ==2015) alert( 'Դուք ճիշտ եք:' );
18
18
*/!*
19
19
```
20
20
21
-
In the example above, the condition is a simple equality check (`year == 2015`), but it can be much more complex.
21
+
Վերոնշյալ օրինակում պայմանը ստուգում է պարզ հավասարություն (`year == 2015`), բայց այն կարող է շատ ավելի բարդ լինել:
22
22
23
-
If we want to execute more than one statement, we have to wrap our code block inside curly braces:
23
+
Եթե մենք ցանկանում ենք կատարել մեկից ավել դրույթներ, ապա մեր կոդի հատվածը պետք է վերցնենք ձևավոր փակագծերի մեջ:
24
24
25
25
```js
26
26
if (year ==2015) {
27
-
alert( "That's correct!" );
28
-
alert( "You're so smart!" );
27
+
alert( "Ճիշտ է:" );
28
+
alert( "Դուք այնքան խելացի եք․․․" );
29
29
}
30
30
```
31
31
32
-
We recommend wrapping your code block with curly braces `{}`every time you use an `if`statement, even if there is only one statement to execute. Doing so improves readability.
32
+
Մենք խորհուրդ ենք տալիս պատել կոդի հատվածը `{}`ձևավոր փակագծերով ամեն անգամ, երբ օգտագործում եք `if`դրույթը, նույնիսկ եթե կատարման համար առկա է միայն մեկ դրույթ։ Այդպես բարելավվում է ընթեռնելիությունը:
33
33
34
-
## Boolean conversion
34
+
## Բուլյան փոխակերպում
35
35
36
-
The `if (…)`statement evaluates the expression in its parentheses and converts the result to a boolean.
36
+
`if (…)`դրույթը գնահատում է իր փակագծերում առկա արտահայտությունը և արդյունքը դարձնում բուլյան:
37
37
38
-
Let's recall the conversion rules from the chapter <info:type-conversions>:
-A number `0`, an empty string `""`, `null`, `undefined`, and`NaN` all become `false`. Because of that they are called "falsy" values.
41
-
-Other values become `true`, so they are called "truthy".
40
+
-`0` թիվը, դատարկ տողը `""`, `null`, `undefined` և`NaN`՝ սրանք բոլորը դառնում են `false`: Այդ պատճառով կոչվում են «կեղծ» արժեքներ։
41
+
-Մյուս արժեքները դառնում են `true`, ուստի դրանք կոչվում են «ճշմարիտ»:
42
42
43
-
So, the code under this condition would never execute:
43
+
Այսպիսով, այս պայմանի ներսում կոդը երբեք չի գործարկվի.
44
44
45
45
```js
46
-
if (0) { // 0 is falsy
46
+
if (0) { // 0-ն կեղծ է
47
47
...
48
48
}
49
49
```
50
50
51
-
...and inside this condition -- it always will:
51
+
...և այս պայմանի ներսում միշտ կգործարկվի.
52
52
53
53
```js
54
-
if (1) { // 1 is truthy
54
+
if (1) { // 1-ը ճշմարիտ է
55
55
...
56
56
}
57
57
```
58
58
59
-
We can also pass a pre-evaluated boolean value to`if`, like this:
59
+
Մենք կարող ենք նաև նախապես գնահատված բուլյան արժեք փոխանցել`if`-ին, այսպես.
60
60
61
61
```js
62
-
let cond = (year ==2015); //equality evaluates to true or false
62
+
let cond = (year ==2015); //հավասարությունը գնահատվում է ճշմարիտ կամ կեղծ
63
63
64
64
if (cond) {
65
65
...
66
66
}
67
67
```
68
68
69
-
## The "else" clause
69
+
## «else» դրույթը
70
70
71
-
The `if`statement may contain an optional "else" block. It executes when the condition is falsy.
71
+
`if`դրույթը կարող է պարունակել կամընտրական, ոչ պարտադիր «else» բլոկ: Այն գործարկվում է, երբ պայմանը կեղծ է:
72
72
73
-
For example:
73
+
Օրինակ.
74
74
```js run
75
-
let year =prompt('In which year was the ECMAScript-2015 specification published?', '');
75
+
let year =prompt('Ո՞ր թվականին է հրապարակվել ECMAScript-2015 դասակարգումը:', '');
76
76
77
77
if (year ==2015) {
78
-
alert( 'You guessed it right!' );
78
+
alert( 'Դուք ճիշտ գուշակեցիք:' );
79
79
} else {
80
-
alert( 'How can you be so wrong?' ); //any value except 2015
80
+
alert( 'Ինչպե՞ս կարող եք այդքան սխալվել:' ); //ցանկացած արժեք, բացի 2015-ից
81
81
}
82
82
```
83
83
84
-
## Several conditions: "else if"
84
+
## Մի քանի պայմաններ. «else if»
85
85
86
-
Sometimes, we'd like to test several variants of a condition. The `else if`clause lets us do that.
86
+
Երբեմն մենք ցանկանում ենք փորձարկել պայմանի մի քանի տարբերակներ: `else if`դրույթը մեզ թույլ է տալիս անել դա:
87
87
88
-
For example:
88
+
Օրինակ.
89
89
90
90
```js run
91
-
let year =prompt('In which year was the ECMAScript-2015 specification published?', '');
91
+
let year =prompt('Ո՞ր թվականին է հրապարակվել ECMAScript-2015 դասակարգումը:', '');
92
92
93
93
if (year <2015) {
94
-
alert( 'Too early...' );
94
+
alert( 'Շատ վաղ է...' );
95
95
} elseif (year >2015) {
96
-
alert( 'Too late' );
96
+
alert( 'Շատ ուշ է' );
97
97
} else {
98
-
alert( 'Exactly!' );
98
+
alert( 'Ճիշտ այդպես:' );
99
99
}
100
100
```
101
101
102
-
In the code above, JavaScript first checks `year < 2015`. If that is falsy, it goes to the next condition `year > 2015`. If that is also falsy, it shows the last`alert`.
102
+
Վերևի կոդում JavaScript-ը նախ ստուգում է `year < 2015`-ը: Եթե դա կեղծ է, անցում է կատարում հաջորդ պայմանին՝ `year > 2015`: Եթե դա նույնպես կեղծ է, ցույց է տալիս վերջին`alert`-ը:
103
103
104
-
There can be more `else if`blocks. The final `else` is optional.
104
+
Կարող են լինել ավելի շատ `else if`բլոկներ: Վերջին `else`-ը կամընտիր է:
105
105
106
-
## Conditional operator '?'
106
+
## Պայմանական օպերատոր «?»
107
107
108
-
Sometimes, we need to assign a variable depending on a condition.
108
+
Երբեմն մեզ պետք է լինում փոփոխական նշանակել՝ կախված պայմանից:
109
109
110
-
For instance:
110
+
Օրինակ.
111
111
112
112
```js run no-beautify
113
113
let accessAllowed;
114
-
let age =prompt('How old are you?', '');
114
+
let age =prompt('Քանի՞ տարեկան եք:', '');
115
115
116
116
*!*
117
117
if (age >18) {
@@ -124,116 +124,116 @@ if (age > 18) {
124
124
alert(accessAllowed);
125
125
```
126
126
127
-
The so-called "conditional" or "question mark" operator lets us do that in a shorter and simpler way.
127
+
Այսպես կոչված «պայմանական» կամ «հարցական նշանի» օպերատորը թույլ է տալիս դա անել ավելի կարճ և ավելի պարզ ձևով:
128
128
129
-
The operator is represented by a question mark `?`. Sometimes it's called "ternary", because the operator has three operands. It is actually the one and only operator in JavaScript which has that many.
129
+
Օպերատորը ներկայացված է `?` հարցական նշանով: Երբեմն այն կոչվում է «եռակի», քանի որ օպերատորն ունի երեք օպերանդ։ Այն իրականում միակ օպերատորն է JavaScript-ում, որն այդքան օպերանդ ունի:
130
130
131
-
The syntax is:
131
+
Շարահյուսությունը հետևյալն է.
132
132
```js
133
133
let result = condition ? value1 : value2;
134
134
```
135
135
136
-
The `condition` is evaluated: if it's truthy then `value1` is returned, otherwise --`value2`.
136
+
Գնահատվում է `condition`-ը. եթե այն ճշմարիտ է, ապա `value1`-ն է վերադարձվում, հակառակ դեպքում՝`value2`-ը:
137
137
138
-
For example:
138
+
Օրինակ.
139
139
140
140
```js
141
141
let accessAllowed = (age >18) ?true:false;
142
142
```
143
143
144
-
Technically, we can omit the parentheses around`age > 18`. The question mark operator has a low precedence, so it executes after the comparison `>`.
144
+
Տեխնիկապես մենք կարող ենք բաց թողնել փակագծերը`age > 18`-ի շուրջ: Հարցական նշանի օպերատորն ունի ցածր գերակայություն, ուստի այն գործարկվում է `>` համեմատությունից հետո:
145
145
146
-
This example will do the same thing as the previous one:
146
+
Այս օրինակը կանի նույն բանը, ինչ նախորդը.
147
147
148
148
```js
149
-
//the comparison operator "age > 18" executes first anyway
150
-
// (no need to wrap it into parentheses)
149
+
//համեմատության «age > 18» օպերատորը ամեն դեպքում առաջինն է կատարվում
150
+
// (կարիք չկա փակագծերի մեջ վերցնել այն)
151
151
let accessAllowed = age >18?true:false;
152
152
```
153
153
154
-
But parentheses make the code more readable, so we recommend using them.
154
+
Բայց փակագծերը կոդն ավելի ընթեռնելի են դարձնում, ուստի խորհուրդ ենք տալիս օգտագործել դրանք:
155
155
156
156
````smart
157
-
In the example above, you can avoid using the question mark operator because the comparison itself returns `true/false`:
157
+
Վերևի օրինակում դուք կարող եք խուսափել հարցական նշանի օպերատորի օգտագործումից, քանի որ համեմատությունն ինքնին վերադարձնում է `true/false`.
158
158
159
159
```js
160
-
// the same
160
+
// նույնը
161
161
let accessAllowed = age > 18;
162
162
```
163
163
````
164
164
165
-
## Multiple '?'
165
+
## Բազմաթիվ «?»
166
166
167
-
A sequence of question mark operators `?`can return a value that depends on more than one condition.
167
+
Հարցական նշանի օպերատորների `?`հաջորդականությունը կարող է վերադարձնել արժեք, որը կախված է մեկից ավելի պայմաններից:
168
168
169
-
For instance:
169
+
Օրինակ.
170
170
```js run
171
-
let age =prompt('age?', 18);
171
+
let age =prompt('տարի՞քը', 18);
172
172
173
-
let message = (age <3) ?'Hi, baby!':
174
-
(age <18) ?'Hello!':
175
-
(age <100) ?'Greetings!':
176
-
'What an unusual age!';
173
+
let message = (age <3) ?'Ողջույն փոքրիկ':
174
+
(age <18) ?'Ողջույն':
175
+
(age <100) ?'Ողջույններ':
176
+
'Ի՜նչ անսովոր տարիք է։';
177
177
178
178
alert( message );
179
179
```
180
180
181
-
It may be difficult at first to grasp what's going on. But after a closer look, we can see that it's just an ordinary sequence of tests:
181
+
Սկզբում կարող է դժվար լինել հասկանալը, թե ինչ է կատարվում: Բայց ավելի ուշադիր նայելուց հետո մենք կարող ենք տեսնել, որ դա ընդամենը թեստերի սովորական հաջորդականություն է.
182
182
183
-
1.The first question mark checks whether `age < 3`.
184
-
2.If true -- it returns `'Hi, baby!'`. Otherwise, it continues to the expression after the colon '":"', checking `age < 18`.
185
-
3.If that's true -- it returns `'Hello!'`. Otherwise, it continues to the expression after the next colon '":"', checking `age < 100`.
186
-
4.If that's true -- it returns `'Greetings!'`. Otherwise, it continues to the expression after the last colon '":"', returning `'What an unusual age!'`.
183
+
1.Առաջին հարցական նշանը ստուգում է, թե արդյո՞ք `age < 3`:
184
+
2.Եթե ճիշտ է, այն վերադարձնում է `'Ողջույն փոքրիկ'`: Հակառակ դեպքում, այն շարունակում է `:` կրկնակետից հետո արտահայտությունը՝ ստուգելով `age < 18`:
185
+
3.Եթե դա ճիշտ է, այն վերադարձնում է `'Ողջույն'`: Հակառակ դեպքում, այն շարունակում է հաջորդ `:` կրկնակետից հետո արտահայտությունը՝ ստուգելով `age < 100`:
186
+
4.Եթե դա ճիշտ է, այն վերադարձնում է `'Ողջույններ!'`: Հակառակ դեպքում, այն շարունակում է վերջին `:` կրկնակետից հետո արտահայտությունը՝ վերադարձնելով `'Ի՜նչ անսովոր տարիք է։'`:
187
187
188
-
Here's how this looks using `if..else`:
188
+
Ահա, թե ինչպես է սա երևում `if..else`-ի միջոցով.
189
189
190
190
```js
191
191
if (age <3) {
192
-
message ='Hi, baby!';
192
+
message ='Ողջույն փոքրիկ';
193
193
} elseif (age <18) {
194
-
message ='Hello!';
194
+
message ='Ողջույն';
195
195
} elseif (age <100) {
196
-
message ='Greetings!';
196
+
message ='Ողջույններ';
197
197
} else {
198
-
message ='What an unusual age!';
198
+
message ='Ի՜նչ անսովոր տարիք է։';
199
199
}
200
200
```
201
201
202
-
## Non-traditional use of '?'
202
+
## «?»-ի ոչ ավանդական օգտագործումը
203
203
204
-
Sometimes the question mark `?`is used as a replacement for `if`:
204
+
Երբեմն `?`հարցական նշանն օգտագործվում է որպես `if`-ին փոխարինող.
205
205
206
206
```js run no-beautify
207
-
let company =prompt('Which company created JavaScript?', '');
207
+
let company =prompt('Ո՞ր ընկերությունն է ստեղծել JavaScript-ը:', '');
208
208
209
209
*!*
210
210
(company =='Netscape') ?
211
-
alert('Right!') :alert('Wrong.');
211
+
alert('Ճիշտ է:') :alert('Սխալ է:');
212
212
*/!*
213
213
```
214
214
215
-
Depending on the condition `company == 'Netscape'`, either the first or the second expression after the `?` gets executed and shows an alert.
215
+
Կախված `company == 'Netscape'` պայմանից, գործարկվում է առաջին կամ երկրորդ արտահայտությունը `?`-ից հետո և ցույց է տալիս alert-ը:
216
216
217
-
We don't assign a result to a variable here. Instead, we execute different code depending on the condition.
217
+
Մենք այստեղ արդյունքը չենք վերագրում փոփոխականի: Փոխարենը մենք գործարկում ենք տարբեր կոդեր՝ կախված պայմանից։
218
218
219
-
**It's not recommended to use the question mark operator in this way.**
219
+
**Խորհուրդ չի տրվում այս եղանակով օգտագործել հարցական նշանի օպերատորը։**
220
220
221
-
The notation is shorter than the equivalent `if`statement, which appeals to some programmers. But it is less readable.
221
+
Նշանագրությունն ավելի կրճատ է, քան համարժեք `if`դրույթի դեպքում, ինչը գրավիչ է որոշ ծրագրավորողների համար: Բայց դա ավելի քիչ ընթեռնելի է։
222
222
223
-
Here is the same code using `if` for comparison:
223
+
Ահա նույն կոդը, որտեղ համեմատության համար օգտագործված է `if`.
224
224
225
225
```js run no-beautify
226
-
let company =prompt('Which company created JavaScript?', '');
226
+
let company =prompt('Ո՞ր ընկերությունն է ստեղծել JavaScript-ը:', '');
227
227
228
228
*!*
229
229
if (company =='Netscape') {
230
-
alert('Right!');
230
+
alert('Ճիշտ է:');
231
231
} else {
232
-
alert('Wrong.');
232
+
alert('Սխալ է:');
233
233
}
234
234
*/!*
235
235
```
236
236
237
-
Our eyes scan the code vertically. Code blocks which span several lines are easier to understand than a long, horizontal instruction set.
237
+
Մեր աչքերը ուղղահայաց են սքանավորում կոդը: Կոդի բլոկները, որոնք ընդգրկում են մի քանի տող, ավելի հասկանալի են, քան երկար, հորիզոնական հրահանգների հավաքածուն:
238
238
239
-
The purpose of the question mark operator `?`is to return one value or another depending on its condition. Please use it for exactly that. Use `if` when you need to execute different branches of code.
239
+
Հարցական նշանի օպերատորի `?`նպատակն է վերադարձնել այս կամ այն արժեքը՝ կախված իր պայմանից: Օգտագործեք այն հենց դրա համար: Օգտագործեք `if`, երբ անհրաժեշտ է գործարկել կոդի տարբեր ճյուղեր:
0 commit comments