Skip to content

Commit ba126b4

Browse files
committed
Finish translating the OR part
1 parent ae5c0ae commit ba126b4

File tree

1 file changed

+59
-1
lines changed

1 file changed

+59
-1
lines changed

1-js/02-first-steps/11-logical-operators/article-pt.md

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,4 +117,62 @@ Isso nos mostra algumas utilidades interessantes comparadas ao "puro, clássico,
117117
```
118118

119119
Se ambos `currentUser` e `defaultUser` forem falsos, o resultado será `"unnamed"`.
120-
2. **
120+
2. **Interpretação de curto-circuito**
121+
122+
Operandos podem não ser apenas valores, mas operações arbitrárias. OU interpreta e testa elas da esquerda para a direita. A interpretaçã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.
123+
124+
Isto é claramente visto quando a expressão dada como segundo argumento tem um efeito como a atribuição de uma variável.
125+
126+
No exemplo abaixo, `x` não tem nenhuma atribuição:
127+
128+
```js run no-beautify
129+
let x;
130+
131+
*!*true*/!* || (x = 1);
132+
133+
alert(x); // undefined, pois (x = 1) não é interpretados
134+
```
135+
136+
Se, por outro lado, o primeiro argumento é `false`, `||` interpreta o segundo, fazendo assim a atribuição:
137+
138+
```js run no-beautify
139+
let x;
140+
141+
*!*false*/!* || (x = 1);
142+
143+
alert(x); // 1
144+
```
145+
146+
Uma atribuição é um caso simples. Outros SIDE EFFECTS podem também estarem envolvidos.
147+
148+
Como podemos ver, esse caso é como um "uma maneira mais curta de se usar `if`". O primeiro operando é convertido para boolean. Se for false, o segundo operando é interpretado.
149+
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+
152+
153+
154+
155+
156+
157+
158+
159+
160+
161+
162+
163+
164+
165+
166+
167+
168+
169+
170+
171+
172+
173+
174+
175+
176+
177+
178+
```

0 commit comments

Comments
 (0)