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-pt.md
+28-28Lines changed: 28 additions & 28 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,32 +14,32 @@ O operador "OU" é representado com dois símbolos de linha vertical:
14
14
result = a || b;
15
15
```
16
16
17
-
Na programação clássica, o operador OU é mencionado para manipular apenas valores booleanos. Se qualquer um dos seus argumentos for `true`, ele retorna `true`, se não, retorna `false`.
17
+
Em programação clássica, o operador OU é mencionado para manipular apenas valores booleanos. Se qualquer um dos seus argumentos for `true`, ele retorna `true`, se não, retorna `false`.
18
18
19
-
Em JavaScript, este operador é um pouco mais útil e poderoso. Mas primeir, vamos ver o que acontece com valores booleanos.
19
+
Em JavaScript, este operador é um pouco mais útil e poderoso. Mas primeiro, vamos ver o que acontece com valores booleanos.
20
20
21
21
Existem quatro combinações lógicas possíveis:
22
22
23
23
```js run
24
24
alert( true||true ); // true
25
25
alert( false||true ); // true
26
26
alert( true||false ); // true
27
-
alert( false||false ); //true
27
+
alert( false||false ); //false
28
28
```
29
29
30
30
Como podemos ver, o resultado é sempre `true`, exceto para o caso onde os dois operandos são `false`.
31
31
32
-
Se um operando não é um boolean, ele é convertido em um boolean para sua verificação.
32
+
Se um operando não é um boolean, ele é convertido em um boolean para ser avaliado.
33
33
34
-
Sendo assim, o número `1` é tratado com `true` e o número `0` como `false`.
34
+
Por exemplo, o número `1` é tratado com `true` e o número `0` como `false`.
35
35
36
36
```js run
37
37
if (1||0) { // funciona como if( true || false)
38
-
alert( 'truthy!');
38
+
alert( 'verdadeiro!');
39
39
}
40
40
```
41
41
42
-
Na maioria das vezes, OU `||` é usado dentro de um `if` STATEMENT para testar se *qualquer* uma das condições dadas é `true`.
42
+
Na maioria das vezes, OU `||` é usado dentro de uma expressão `if` para testar se *qualquer* uma das condições dadas é `true`.
43
43
44
44
Por exemplo:
45
45
@@ -70,17 +70,17 @@ A lógica descrita acima é algo clássico. Agora, vamos ver as funcionalidades
70
70
71
71
O algorítmo extendido funciona da seguinte forma.
72
72
73
-
Dando múltiplos valores OU's:
73
+
Dando múltiplos valores encadeados em OU's:
74
74
75
75
```js
76
76
result = value1 || value2 || value3;
77
77
```
78
78
79
79
O operador OU `||` faz o seguinte:
80
80
81
-
-Interpreta os operandos da esquerda para a direita.
81
+
-Avalia os operandos da esquerda para a direita.
82
82
- Para cada operando, o converte para boolean. Se o resultado é `true`, para e retorna o valor original daquele operando.
83
-
- Se todos os operandos foram interpretados (i.e. todos são `false`), retorna o último operando.
83
+
- Se todos os operandos foram avaliados (i.e. todos são `false`), retorna o último operando.
84
84
85
85
Um valor é retornado na sua forma original, sem conversão.
86
86
@@ -117,9 +117,9 @@ Isso nos mostra algumas utilidades interessantes comparadas ao "puro, clássico,
117
117
```
118
118
119
119
Se ambos `currentUser` e `defaultUser` forem falsos, o resultado será `"unnamed"`.
120
-
2.**Interpretação de curto-circuito**
120
+
2.**Avaliação de curto-circuito**
121
121
122
-
Operandos podem não ser apenas valores, mas operações arbitrárias. OU interpreta e testa elas da esquerda para a direita. Ainterpretação para quando um valor verdadeiro é encontrado e este valor é retornado. Este processo é chamado de "interpretação de curto-circuito" pois vai o mais curto possível da esquerda para a direita.
122
+
Operandos podem não ser apenas valores, mas operações arbitrárias. OU interpreta e testa elas da esquerda para a direita. Aavaliação é interrompida quando um valor verdadeiro é encontrado e este valor é retornado. Este processo é chamado de "avaliação de curto-circuito" pois vai o mais curto possível da esquerda para a direita.
123
123
124
124
Isto é claramente visto quando a expressão dada como segundo argumento tem um efeito como a atribuição de uma variável.
125
125
@@ -130,10 +130,10 @@ Isso nos mostra algumas utilidades interessantes comparadas ao "puro, clássico,
130
130
131
131
*!*true*/!* || (x = 1);
132
132
133
-
alert(x); // undefined, pois (x = 1) não é interpretados
133
+
alert(x); // undefined, pois (x = 1) não é avaliado
134
134
```
135
135
136
-
Se, por outro lado, o primeiro argumento é `false`, `||`interpreta o segundo, fazendo assim a atribuição:
136
+
Se, por outro lado, o primeiro argumento é `false`, `||`avalia o segundo, fazendo assim a atribuição:
137
137
138
138
```js run no-beautify
139
139
let x;
@@ -143,9 +143,9 @@ Isso nos mostra algumas utilidades interessantes comparadas ao "puro, clássico,
143
143
alert(x); // 1
144
144
```
145
145
146
-
Uma atribuição é um caso simples. OutrosSIDEEFFECTS podem também estarem envolvidos.
146
+
Uma atribuição é um caso simples. Outros##SIDEEFFECTS(???)## podem também estarem envolvidos.
147
147
148
-
Como podemos ver, esse caso é como um "uma maneira mais curta de se usar `if`". O primeiro operando é convertido para boolean. Seforfalse, o segundo operando é interpretado.
148
+
Como podemos ver, esse caso é como "uma maneira mais curta de se usar `if`". O primeiro operando é convertido para boolean. Seforfalse, o segundo operando é avaliado.
149
149
150
150
Na maioria das vezes, é melhor usar o `if`"regular" para manter a facilidade de entendimento do código, mas vez ou outra isso pode ser útil.
151
151
@@ -157,7 +157,7 @@ O operador E é representado com dois e's comerciais `&&`:
157
157
result = a && b;
158
158
```
159
159
160
-
Em programação clássica, E retorna `true` se ambos os operandos forem verdadeiros e `false`, caso contrário:
160
+
Em programação clássica, E retorna `true` se ambos os operandos forem verdadeiros ou `false`, caso contrário:
Da mesma forma com OU, qualquer valor é permitido como um operando de E:
180
+
Da mesma forma que o OU, qualquer valor é permitido como um operando de E:
181
181
182
182
```js run
183
-
if (1 && 0) { // interpre como true && false
183
+
if (1 && 0) { // interpreta como true && false
184
184
alert( "não funciona, pois o resultado é falso" );
185
185
}
186
186
```
187
187
188
-
## "E" encontra o primeiro valor falsos
188
+
## "E" encontra o primeiro valor falso
189
189
190
-
Dados múltiplos valores encadeados com E's:
190
+
Dados múltiplos valores encadeados em E's:
191
191
192
192
```js
193
193
result = value1 && value2 && value3;
194
194
```
195
195
196
196
O operador `&&` faz o seguinte:
197
197
198
-
-Interpreta os operandos da esquerda para a direita.
199
-
- Para cada operando, o converte para um boolean. Se o resultado for`false`, para e retorna o valor original daquele operando.
200
-
- Se todos os operandos foram interpretados (i.e. todos são verdadeiros), retorna o último operando.
198
+
-Avalia os operandos da esquerda para a direita.
199
+
- Para cada operando, o converte para um boolean. Se o resultado for`false`, interrompe e retorna o valor original daquele operando.
200
+
- Se todos os operandos foram avaliados (i.e. todos são verdadeiros), retorna o último operando.
201
201
202
202
Em outras palavras, E retorna o primeiro valor falso ou o último valor se nenhum for falso.
203
203
@@ -245,7 +245,7 @@ let x = 1;
245
245
(x > 0) && alert( 'Maior que zero!' );
246
246
```
247
247
248
-
A ação na parte direita do`&&` executaria somente se a interpretação chegasse até ela. Ou seja, apenas se `(x > 0)`for verdadeiro.
248
+
A ação na parte direita do`&&` executaria somente se a avaliação chegasse até ela. Ou seja, apenas se `(x > 0)`for verdadeiro.
249
249
250
250
Então, basicamente temos uma analogia para:
251
251
@@ -283,14 +283,14 @@ alert( !true ); // false
283
283
alert( !0 ); // true
284
284
```
285
285
286
-
Uma repetição doNOT`!!` às vezes é usado para converter um valor para o tipo boolean:
286
+
Uma repetição doNÃO`!!` às vezes é usado para converter um valor para o tipo boolean:
287
287
288
288
```js run
289
289
alert( !!"string não vazia" ); // true
290
290
alert( !!null ); // false
291
291
```
292
292
293
-
Ou seja, o primeiro NOT converte o valor para boolean e retorna o seu inverso e o segundo NOT o inverte de novo. No final, nós temos uma conversão do valor para boolean.
293
+
Ou seja, o primeiro NÃO converte o valor para boolean e retorna o seu inverso e o segundo NÃO o inverte de novo. No final, nós temos uma conversão do valor para boolean.
294
294
295
295
Existem outras formas mais extensas de se fazer a mesma coisa -- uma função `Boolean`:
0 commit comments