Skip to content

Commit b0e4344

Browse files
translates or updates logical operators
Logical operators
2 parents f95c373 + e645c6c commit b0e4344

File tree

20 files changed

+193
-183
lines changed

20 files changed

+193
-183
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
The answer is `2`, that's the first truthy value.
1+
A resposta é `2`, pois é o primeiro valor verdadeiro.
22

33
```js run
44
alert( null || 2 || undefined );
55
```
6-

1-js/02-first-steps/11-logical-operators/1-alert-null-2-undefined/task.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@ importance: 5
22

33
---
44

5-
# What's the result of OR?
5+
# Qual o resultado do *OR* ?
66

7-
What is the code below going to output?
7+
Qual é a saída do código abaixo?
88

99
```js
1010
alert( null || 2 || undefined );
1111
```
12-
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
The answer: first `1`, then `2`.
1+
A resposta: primeiro `1`, depois `2`.
22

33
```js run
44
alert( alert(1) || 2 || alert(3) );
55
```
66

7-
The call to `alert` does not return a value. Or, in other words, it returns `undefined`.
7+
Ao chamar `alert` não é retornado nenhum valor. Ou seja, é retornado `undefined`.
88

9-
1. The first OR `||` evaluates its left operand `alert(1)`. That shows the first message with `1`.
10-
2. The `alert` returns `undefined`, so OR goes on to the second operand searching for a truthy value.
11-
3. The second operand `2` is truthy, so the execution is halted, `2` is returned and then shown by the outer alert.
9+
1. O primeiro *OR* `||` avalia o operando da esquerda `alert(1)`. Que mostra a primeira mensagem com `1`.
10+
2. O `alert` retorna `undefined`, então *OR* vai ao segundo operando procurando por um valor verdadeiro.
11+
3. O segundo operando `2` é verdadeiro, então a execução é interrompida, `2` é retornado e, é mostrado pelo `alert` externo.
1212

13-
There will be no `3`, because the evaluation does not reach `alert(3)`.
13+
Não haverá `3`, pois a execução não chega a `alert(3)`.

1-js/02-first-steps/11-logical-operators/2-alert-or/task.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@ importance: 3
22

33
---
44

5-
# What's the result of OR'ed alerts?
5+
# Qual o resultado do alerta de encadeamento de *OR*'s?
66

7-
What will the code below output?
7+
Qual a saída do código abaixo?
88

99
```js
1010
alert( alert(1) || 2 || alert(3) );
1111
```
12-
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
The answer: `null`, because it's the first falsy value from the list.
1+
Resposta: `null`, pois é o primeiro valor falso da lista.
22

33
```js run
44
alert(1 && null && 2);
55
```
6-

1-js/02-first-steps/11-logical-operators/3-alert-1-null-2/task.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@ importance: 5
22

33
---
44

5-
# What is the result of AND?
5+
# Qual o resultado de *AND*?
66

7-
What is this code going to show?
7+
O que este código irá mostrar?
88

99
```js
1010
alert( 1 && null && 2 );
1111
```
12-
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
The answer: `1`, and then `undefined`.
1+
Resposta: `1`, e depois `undefined`.
22

33
```js run
44
alert( alert(1) && alert(2) );
55
```
66

7-
The call to `alert` returns `undefined` (it just shows a message, so there's no meaningful return).
8-
9-
Because of that, `&&` evaluates the left operand (outputs `1`), and immediately stops, because `undefined` is a falsy value. And `&&` looks for a falsy value and returns it, so it's done.
7+
A chamada de `alert` retorna `undefined` (apenas mostra uma mensagem, então não existe nenhum retorno significativo).
108

9+
Por causa disso, `&&` avalia o operando à esquerda (mostra `1`), e imediatamente interrompe, pois, `undefined` é um valor falso. *AND* `&&` procura por um valor falso e o retorna, então está feito.

1-js/02-first-steps/11-logical-operators/4-alert-and/task.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@ importance: 3
22

33
---
44

5-
# What is the result of AND'ed alerts?
5+
# Qual o resultado dos alerts encadeados em *AND*?
66

7-
What will this code show?
7+
O que este código irá mostrar?
88

99
```js
1010
alert( alert(1) && alert(2) );
1111
```
12-
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1-
The answer: `3`.
1+
Resposta: `3`.
22

33
```js run
44
alert( null || 2 && 3 || 4 );
55
```
66

7-
The precedence of AND `&&` is higher than `||`, so it executes first.
7+
A precedência de *AND* `&&` é maior que *OR* `||`. Então ele é executado primeiro.
88

9-
The result of `2 && 3 = 3`, so the expression becomes:
9+
O resultado de `2 && 3 = 3`, então a expressão se torna:
1010

1111
```
1212
null || 3 || 4
1313
```
1414

15-
Now the result is the first truthy value: `3`.
16-
15+
Agora o resultado é o primeiro valor verdadeiro: `3`.

1-js/02-first-steps/11-logical-operators/5-alert-and-or/task.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@ importance: 5
22

33
---
44

5-
# The result of OR AND OR
5+
# O resultado de *OR* *AND* *OR*
66

7-
What will the result be?
7+
Qual será o resultado?
88

99
```js
1010
alert( null || 2 && 3 || 4 );
1111
```
12-

1-js/02-first-steps/11-logical-operators/6-check-if-in-range/solution.md

-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,3 @@
33
```js
44
if (age >= 14 && age <= 90)
55
```
6-

1-js/02-first-steps/11-logical-operators/6-check-if-in-range/task.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ importance: 3
22

33
---
44

5-
# Check the range between
5+
# Verifique o intervalo entre
66

7-
Write an `if` condition to check that `age` is between `14` and `90` inclusively.
7+
Escreva uma condição "if" para verificar se `age` está no intervalo fechado de 14 a 90.
88

9-
"Inclusively" means that `age` can reach the edges `14` or `90`.
9+
"Fechado" significa que `age` pode chegar a ser `14` ou `90`.
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
The first variant:
1+
A primeira variação:
22

33
```js
44
if (!(age >= 14 && age <= 90))
55
```
66

7-
The second variant:
7+
A segunda variação:
88

99
```js
1010
if (age < 14 || age > 90)
1111
```
12-

1-js/02-first-steps/11-logical-operators/7-check-if-out-range/task.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ importance: 3
22

33
---
44

5-
# Check the range outside
5+
# Verifique o exterior do intervalo
66

7-
Write an `if` condition to check that `age` is NOT between `14` and `90` inclusively.
7+
Escreva uma condição `if` para verificar se `age` NÃO está no intervalo fechado de 14 a 90.
88

9-
Create two variants: the first one using NOT `!`, the second one -- without it.
9+
Crie duas variantes: a primeira usando NÃO `!`, e uma segunda -- sem ele.
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
1-
The answer: the first and the third will execute.
1+
Resposta: o primeiro e o terceiro serão executados.
22

3-
Details:
3+
Detalhes:
44

55
```js run
6-
// Runs.
7-
// The result of -1 || 0 = -1, truthy
8-
if (-1 || 0) alert( 'first' );
6+
// Executa.
7+
// O resultado de -1 || 0 = -1, verdadeiro.
8+
if (-1 || 0) alert( 'primeiro' );
99

10-
// Doesn't run
11-
// -1 && 0 = 0, falsy
12-
if (-1 && 0) alert( 'second' );
10+
// Não executa.
11+
// -1 && 0 = 0, falso
12+
if (-1 && 0) alert( 'segundo' );
1313

14-
// Executes
15-
// Operator && has a higher precedence than ||
16-
// so -1 && 1 executes first, giving us the chain:
14+
// Executa.
15+
// O operador && tem precedência maior que ||
16+
// então -1 && 1 executa primeiro, nos dando o encadeamento:
1717
// null || -1 && 1 -> null || 1 -> 1
18-
if (null || -1 && 1) alert( 'third' );
18+
if (null || -1 && 1) alert( 'terceiro' );
1919
```
20-

1-js/02-first-steps/11-logical-operators/8-if-question/task.md

+6-7
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,14 @@ importance: 5
22

33
---
44

5-
# A question about "if"
5+
# Uma questão sobre "if"
66

7-
Which of these `alert`s are going to execute?
7+
Qual destes `alert`s serão executados?
88

9-
What will the results of the expressions be inside `if(...)`?
9+
Qual será o resultado das expressões dentro dos `if(...)`s?
1010

1111
```js
12-
if (-1 || 0) alert( 'first' );
13-
if (-1 && 0) alert( 'second' );
14-
if (null || -1 && 1) alert( 'third' );
12+
if (-1 || 0) alert( 'primeiro' );
13+
if (-1 && 0) alert( 'segundo' );
14+
if (null || -1 && 1) alert( 'terceiro' );
1515
```
16-
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11

22

33
```js run demo
4-
let userName = prompt("Who's there?", '');
4+
let userName = prompt("Quem está aí?", '');
55

66
if (userName === 'Admin') {
77

8-
let pass = prompt('Password?', '');
8+
let pass = prompt('Senha?', '');
99

1010
if (pass === 'TheMaster') {
11-
alert( 'Welcome!' );
11+
alert( 'Bem vindo!' );
1212
} else if (pass === '' || pass === null) {
13-
alert( 'Canceled' );
13+
alert( 'Cancelado.' );
1414
} else {
15-
alert( 'Wrong password' );
15+
alert( 'Senha incorreta.' );
1616
}
1717

1818
} else if (userName === '' || userName === null) {
19-
alert( 'Canceled' );
19+
alert( 'Cancelado' );
2020
} else {
21-
alert( "I don't know you" );
21+
alert( "Eu não conheço você." );
2222
}
2323
```
2424

25-
Note the vertical indents inside the `if` blocks. They are technically not required, but make the code more readable.
25+
Note as indentações verticais dentro dos blocos de `if`s. Tecnicamente, elas não são necessárias, mas tornam o código mais legível.

1-js/02-first-steps/11-logical-operators/9-check-login/task.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,24 @@ importance: 3
22

33
---
44

5-
# Check the login
5+
# Verifique o login
66

7-
Write the code which asks for a login with `prompt`.
7+
Escreva o código que irá perguntar por um login com um `prompt`.
88

9-
If the visitor enters `"Admin"`, then `prompt` for a password, if the input is an empty line or `key:Esc` -- show "Canceled", if it's another string -- then show "I don't know you".
9+
Se o visitante digitar `"Admin"`, então faça `prompt` para uma senha, se a entrada é uma linha vazia ou `key:Esc` -- mostre "Cancelada.", se for qualquer outra `string` -- então mostre "Eu não conheço você.".
1010

11-
The password is checked as follows:
11+
A senha é checada da seguinte forma:
1212

13-
- If it equals "TheMaster", then show "Welcome!",
14-
- Another string -- show "Wrong password",
15-
- For an empty string or cancelled input, show "Canceled"
13+
- Se for igual a "TheMaster", então mostre "Bem vindo!",
14+
- Qualquer outra `string` -- mostre "Senha incorreta",
15+
- Para uma `string` vazia ou cancelada, mostre "Cancelada.".
1616

17-
The schema:
17+
O esquema:
1818

1919
![](ifelse_task.svg)
2020

21-
Please use nested `if` blocks. Mind the overall readability of the code.
21+
Use blocos agrupados de `if`s. Tenha em mente a legibilidade do código.
2222

23-
Hint: passing an empty input to a prompt returns an empty string `''`. Pressing `key:ESC` during a prompt returns `null`.
23+
Dica: passar uma entrada vazia para um `prompt` retorna uma string vazia `''`. Pressionar `key:ESC` durante o `prompt` retorna `null`.
2424

2525
[demo]

0 commit comments

Comments
 (0)