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/11-logical-operators/article.md
+45-48Lines changed: 45 additions & 48 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
1
# Operatori logici
2
2
3
-
În JavaScript există patru operatori logici: `||` (ORI), `&&` (ȘI), `!` (NU), `??` (Fuzionare nulă). În acest articol vorbim doar despre primi trei, operatorul `??` va fi acoperit în următorul articol.
3
+
În JavaScript există patru operatori logici: `||` (ORI), `&&` (ȘI), `!` (NU), `??` (Nullish Coalescing). În acest articol vorbim doar despre primi trei, operatorul `??` va fi acoperit în următorul articol.
4
4
5
-
Chiar dacă sunt denumiți operatori „logici”, aceștia pot fi folosiți pentru valori de orice tip, nu doar pentru cele de tip boolean. Rezultatul acetora putând fi de orice tip.
5
+
Chiar dacă sunt denumiți operatori „logici”, aceștia pot fi folosiți pentru valori de orice tip, nu doar pentru cele de tip boolean. Rezultatul acestora putând fi de orice tip.
6
6
7
7
Haideți să aflăm mai multe detalii.
8
8
@@ -13,32 +13,32 @@ Simbolul pentru operatorul „ORI” este reprezentat prin două linii verticale
13
13
```js
14
14
result = a || b;
15
15
```
16
-
În programarea clasică, operatorul logic „ORI” este folosit pentru a manipula doar valori de tip boolean. Dacă valoarea unuia dintre argumente acesuita este „adevărat”, rezultatul acelei operații va fi „adevărat”, dacă nu rezultatul va fi „fals”.
16
+
În programarea clasică, operatorul logic „ORI” este folosit pentru a manipula doar valori de tip boolean. Dacă valoarea unuia dintre argumente este `true`, rezultatul operației va fi `true`, în caz contrar rezultatul va fi `false`.
17
17
18
-
În JavaScript, acest operator este puțin mai complicat, dar mult mai eficient. Pentru început, haideți să vedem ce se întâmplă cu aceste valori de tip boolean.
18
+
În JavaScript, acest operator este puțin mai complex, dar mult mai eficient. Pentru început, haideți să vedem ce se întâmplă cu aceste valori de tip boolean.
19
19
20
20
Pot fi posibile doar patru combinații logice.
21
21
22
22
```js run
23
-
alert( true||true ); //adevărat
24
-
alert( false||true ); //adevărat
25
-
alert( true||false ); //adevărat
26
-
alert( false||false ); //fals
23
+
alert( true||true ); //true
24
+
alert( false||true ); //true
25
+
alert( true||false ); //true
26
+
alert( false||false ); //false
27
27
```
28
28
29
-
După cum putem vedea, rezultat este mereu „adevărat” cu excepția cazului în care ambii operanți au valoarea de „fals”.
29
+
După cum putem vedea, rezultat este mereu `true` cu excepția cazului în care ambii operanți au valoarea `false`.
30
30
31
-
Dacă un operant nu este de tip boolean, acesta este convertit automat într-unul pentru evaluare.
31
+
Dacă un operant nu este de tip boolean, acesta este convertit automat pentru evaluare.
32
32
33
-
De exemplu, numărul „1” este tratat ca fiind „adevărat”, iar numărul „0” este „fals”:
33
+
De exemplu, numărul `1` este tratat ca fiind `true`, iar numărul `0` este `false`:
34
34
35
35
```js run
36
-
if (1||0) { // funcționează asemenea lui if( adevărat || fals )
37
-
alert( 'efectiv adevărat!' );
36
+
if (1||0) { // funcționează asemenea if( true || false )
37
+
alert( 'truthy' );
38
38
}
39
39
```
40
40
41
-
De cele mai multe ori, semnul ORI `||` este folositi într-un if statement pentru a testa dacă vreauna dintre condiții este adevărată.
41
+
De cele mai multe ori, semnul ORI `||` este folosit într-un if statement pentru a testa dacă vreauna dintre condiții este `true`.
- Fiecare operant este convertit într-o valoare de tip boolean. Dacă rezultatul este „adevărat”, execuția se oprește și valoarea originală a acelui operant este returnată.
81
+
- Fiecare operant este convertit într-o valoare boolean. Dacă rezultatul este `true`, execuția este oprită și valoarea originală a acelui operant este returnată.
82
82
- Dacă toți operanții au fost evaluați (iar toți erau falși), ultimul operant este returnat.
83
83
84
84
O valoare este returnată în forma ei originală, fără conversiune.
85
85
86
-
Cu alte cuvinte, într-un lanț de ORI `||` este returnată prima valoare efectiv adevărată sau ultima dacă nicio valoare efectiv adevărată nu este găsită.
86
+
Cu alte cuvinte, într-un lanț de operatori logici ORI `||` este returnată prima valoare truthy sau ultima dacă nicio valoare truthy nu este identificată.
87
87
88
88
Spre exemplu:
89
89
90
90
```js run
91
-
alert( 1||0 ); // 1 (1 este efectiv adevărat)
91
+
alert( 1||0 ); // 1 (1 este truthy)
92
92
93
-
alert( null||1 ); // 1 (1 este prima valoare efectiv adevărată)
94
-
alert( null||0||1 ); // 1 (prima valoare efectiv adevărată)
93
+
alert( null||1 ); // 1 (1 este prima valoare truthy)
94
+
alert( null||0||1 ); // 1 (prima valoare truthy)
95
95
96
-
alert( undefined||null||0 ); // 0 (toate valorile sunt efectiv false, este returnată ultima valoare)
96
+
alert( undefined||null||0 ); // 0 (toate valorile sunt falsy, ultima valoare este returnată)
97
97
```
98
98
99
-
Asta conduce la o utilizate mai interesantă spre deosebire de un boolean clasic de tip ORI.
99
+
Asta conduce la utilizări mai interesante față de cele calsice în care operatorul ORI compară doar valori pur booleene.
100
100
101
-
1.**Poate fi obținută prima valoare efectiv adevărată dintr-o listă de variabile sau expresii.**
101
+
1.**Obținerea primei valori truthy dintr-o listă de variabile sau expresii.**
102
102
103
-
Spre exemplu, avem variabilele `firstName`, `lastName` si `nickName`, toate opționale (adică pot fi undefined sau pot avea valori efectiv false)
103
+
Spre exemplu, avem variabilele `firstName`, `lastName` si `nickName`, toate opționale (adică valoarea lor poate fi undefined sau falsy)
104
104
105
-
Hai să folosim operatorul ORI `||` pentru a selecta variabila care conține date și să le facem să apară (sau `"Anonim"`dacă niciuna nu are nicio valoare):
105
+
Haideți să folosim operatorul ORI `||` pentru a identifica variabila truthy și să folosim conținutul acesteia (sau `"Anonim"`în caz contrar):
106
106
107
107
```js run
108
108
let firstName ="";
@@ -114,16 +114,15 @@ Asta conduce la o utilizate mai interesantă spre deosebire de un boolean clasic
114
114
*/!*
115
115
```
116
116
117
-
<!-- If all variables were falsy, `"Anonymous"` would show up. -->
118
-
Dacă toate variabilele ar fi efectiv false, ar apărea textul `"Anonim"`.
117
+
Dacă toate variabilele ar fi fost falsy, ar fi fost folosit `"Anonim"`.
119
118
120
-
2.**Evaulare de tip scurt circuit**
119
+
2.**Evaluarea de tip scurt circuit.**
121
120
122
121
O altă caracteristică a operatorului ORI`||` este așa numita evaluare de tip scurt circuit.
123
122
124
-
Aceasta înseamnă că `||` își procesează argumentele până când prima valoare efectiv adevărată este întâlnită, iar apoi acea valoare este returnată imediat, fără ca celălalt argument să mai fie luat în considera.
123
+
Aceasta înseamnă că `||` își procesează argumentele până când prima valoare truthy este întâlnită, iar apoi acea valoare este returnată imediat, fără ca celălalt argument să mai fie luat în considerare.
125
124
126
-
Importanța acestei caracteristici începe să devina evidentă în momentul în care unul dintre operanți nu reprezintă doar o valoare, ci o expresie care aduce cu sine și un efect advers, cum ar fi atribuirea valorii unei variabile sau apelarea unei funcții.
125
+
Importanța acestei caracteristici începe să devină evidentă în momentul în care unul dintre operanți nu conține doar o valoare, ci o expresie care aduce cu sine și un efect advers, cum ar fi atribuirea valorii unei variabile sau invocarea unei funcții.
127
126
128
127
Pentru exemplul de mai jos, doar al doilea mesaj este printat:
129
128
@@ -132,19 +131,17 @@ Asta conduce la o utilizate mai interesantă spre deosebire de un boolean clasic
132
131
*!*false*/!* || alert("Acest mesaj este printat!");
133
132
```
134
133
135
-
În prima linie, operatorul OR`||` imediat ce întâlnește valoarea true oprește evaluarea, astfel încât methoda alert nu este rulată.
134
+
În prima linie, operatorul ORI`||` imediat ce întâlnește valoarea `true` oprește evaluarea, astfel încât metoda `alert` nu este executată.
136
135
137
-
Uneori, oeamni folosesc această funcție pentru a executa comenzi doar dacă condiția din partea stângă este efectiv falsă.
136
+
Uneori, oamenii folosesc această funcție pentru a executa comenzi doar dacă condiția din partea stângă este falsy.
138
137
## && (ȘI)
139
138
140
-
Operatorul ȘI este reprezentat de două semne de tip ampersand `&&`:
139
+
Operatorul ȘI este reprezentat de două semne ampersand `&&`:
141
140
142
141
```js
143
142
result = a && b;
144
143
```
145
144
146
-
<!--Până aici trebuie înlocuit true, truthy, false, falsey. -->
147
-
148
145
În programarea clasică, operatorul ȘI are ca rezultat `true` dacă ambii operanți sunt truthy și `false` în caz contrar:
La fel cum se întâmplă cu operatorul ORI, orice valoare poate fi acceptată ca fiind operantul lui ȘI:
165
+
La fel cum se întâmplă cu operatorul ORI, ȘIpoate accepta ca operant orice valoare:
169
166
170
167
```js run
171
168
if (1 && 0) { // evaluat ca true && false
@@ -187,27 +184,27 @@ Operatorul ȘI `&&` face următoarele lucruri:
187
184
- Convertește fiecare operant într-un boolean. Dacă rezultatul este `false`, procesul este oprit, iar valoarea originală a operantului este returnată.
188
185
- Dacă toți operanții au fost evaluați (și toți sunt truthy), ultimul operant este returnat.
189
186
190
-
<!-- In other words, AND returns the first falsy value or the last value if none were found. -->
191
-
Cu alte cuvinte, operatorul ȘI are ca rezultat prima valoare falsy sau ultima valoare dacă nicuna nu este găsită.
192
-
<!-- Mai verifică încă odată propoziția de mai sus. Aici am rămas -->
187
+
Cu alte cuvinte, operatorul ȘI are ca rezultat prima valoare falsy sau ultima valoare dacă niciuna nu este falsy.
193
188
194
-
The rules above are similar to OR. The difference is that AND returns the first *falsy*value whileOR returns the first *truthy* one.
189
+
Regulile de mai sus sunt similare și pentru ORI. Diferența constă înfaputlcă ȘIarecarezultatprimavaloare*falsy* întimpceORIarecarezultatprimavaloare*truthy*.
195
190
196
-
Examples:
191
+
Exemple:
197
192
198
193
```js run
199
-
// if the first operand is truthy,
200
-
// AND returns the second operand:
194
+
// dacă primul operant este truthy,
195
+
// ȘI are ca rezultat cel de al doilea operant:
201
196
alert( 1 && 0 ); // 0
202
197
alert( 1 && 5 ); // 5
203
198
204
-
// if the first operand is falsy,
205
-
// AND returns it. The second operand is ignored
199
+
// dacă primul operant este falsy,
200
+
// acesta este rezultatul lui ȘI, iar cel de al doilea este ignorat
206
201
alert( null && 5 ); // null
207
-
alert( 0 && "no matter what" ); // 0
202
+
alert( 0 && "orice s-ar întâmpla" ); // 0
208
203
```
209
204
210
-
We can also pass several values in a row. See how the first falsy one is returned:
205
+
<!-- We can also pass several values in a row. See how the first falsy one is returned:-->
206
+
De asemenea, putem oferi mai multe valori în același timp. Observați cum prima valoare falsy este returnată:
0 commit comments