Skip to content

Commit 0aeb36f

Browse files
authored
Merge branch 'master' into master
2 parents 1ec73c8 + 59a4159 commit 0aeb36f

File tree

133 files changed

+1435
-1139
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

133 files changed

+1435
-1139
lines changed

1-js/01-getting-started/1-intro/article.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Interpretadores diferentes têm "codinomes" diferentes. Por exemplo:
2626

2727
- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- no Chrome e no Opera.
2828
- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- no Firefox.
29-
- ...Há outros codinomes como "Chakra" para o IE, "ChakraCore" para Microsoft Edge, "Nitro" e "SquirrelFish" para Safari, etc.
29+
- ...Há outros codinomes como "Chakra" para o IE, "JavaScriptCore", "Nitro" e "SquirrelFish" para Safari, etc.
3030

3131
Os termos acima são bons para lembrar, pois são usados em artigos de desenvolvedores na internet. Vamos usá-los também. Por exemplo, se "um recurso X é suportado pelo V8", então ele provavelmente funciona no Chrome e no Opera.
3232

@@ -109,8 +109,9 @@ Exemplos de tais linguagens:
109109
- [CoffeeScript](http://coffeescript.org/) é um "açúcar sintático" para JavaScript. Ele introduz uma sintaxe mais curta, permitindo-nos escrever um código mais claro e preciso. Normalmente, Ruby devs gostam dele.
110110
- [TypeScript](http://www.typescriptlang.org/) está concentrado em adicionar "estritos tipos de dados" para simplificar o desenvolvimento e suporte de sistemas complexos. É desenvolvido pela Microsoft.
111111
- [Flow](http://flow.org/) também adiciona tipos de dados, mas de uma forma diferente. Desenvolvido pela Facebook.
112-
- [Dart](https://www.dartlang.org/) é uma linguagem autônoma que tem seu próprio interpretador que roda em ambientes fora do navegador (como aplicativos móveis), mas também pode ser transpilada para JavaScript. Desenvolvido pela Google.
112+
- [Dart](https://www.dartlang.org/) é uma linguagem autônoma que tem seu próprio interpretador que roda em ambientes fora do navegador (como aplicativos móveis), mas também pode ser transpilada para JavaScript. Desenvolvida pela Google.
113113
- [Brython](https://brython.info/) é um transpilador de Python para JavaScript que permite escrever aplicativos em puro Python, sem JavaScript.
114+
- [Kotlin](https://kotlinlang.org/docs/js-overview.html) é uma linguagem de programação moderna, concisa e segura, que pode ser usada no navegador ou no Node.
114115

115116
Há mais. Claro que, mesmo que usemos uma dessas linguagens transpiladas, também devemos saber JavaScript para entender o que estamos fazendo.
116117

1-js/01-getting-started/2-manuals-specifications/article.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,12 @@ E mais, se você está desenvolvendo para browsers, há outras especificações
1717

1818
## Manuais
1919

20-
- **MDN (Mozilla) JavaScript Reference** é um manual com exemplos e outras informações. É ótimo para um entendimento sobre funções, métodos da linguagem, etc.
20+
- **MDN (Mozilla) JavaScript Reference** é um manual com exemplos e outras informações. É ótimo para um entendimento sobre funções da linguagem, métodos , etc.
2121

2222
Pode ser encontrado em <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference>.
2323

2424
Porém, às vezes é melhor fazer uma busca na internet. Apenas use "MDN [termo]" na busca, por exemplo: <https://google.com/search?q=MDN+parseInt> para procurar pela função `parseInt`.
2525

26-
- **MSDN** - Manual da Microsoft com muitas informações, incluindo JavaScript (frequentemente referido como JScript). Se precisar de algo específico para o Internet Explorer, é melhor ir por aqui: <http://msdn.microsoft.com/>.
27-
28-
Assim como para o manual da Mozilla, também podemos fazer uma busca na internet com frases do tipo "RegExp MSDN" ou "RegExp MSDN jscript".
29-
3026
## Tabelas de compatibilidade
3127

3228
JavaScript é uma linguagem em desenvolvimento, novas funcionalidades são adicionadas regularmente.

1-js/02-first-steps/02-structure/article.md

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ alert(3 +
4646
+ 2);
4747
```
4848

49-
O código produz `6` porque o Javascript não insere pontos e virgulas aqui. É intuitivamente óbvio que se a linha termina com um sinal de mais `"+"`, então é uma "expressão incompleta", logo o ponto e vírgula não é necessário. E neste caso isso funciona como pretendido.
49+
O código produz `6` porque o Javascript não insere pontos e virgulas aqui. É intuitivamente óbvio que se a linha termina com um sinal de mais `"+"`, então é uma "expressão incompleta", logo o ponto e vírgula aí seria incorreto. E neste caso isso funciona como pretendido.
5050

5151
**Mas há situações em que o JavaScript "falha" em assumir um ponto e vírgula onde ele é realmente necessário.**
5252

@@ -56,40 +56,36 @@ Erros que ocorrem em tais casos são bastante difíceis de encontrar e corrigir.
5656
Se você está curioso para ver um exemplo concreto de tal erro, verifique este código:
5757
5858
```js run
59-
[1, 2].forEach(alert)
59+
alert("Hello");
60+
61+
[1, 2].forEach(alert);
6062
```
6163
62-
Não há necessidade de pensar sobre o significado dos parênteses `[]` e `forEach` ainda. Nós vamos estudá-los mais tarde. Por enquanto, apenas lembre-se que o resultado do código: mostra `1` e depois` 2`.
64+
Não há necessidade de pensar sobre o significado dos parênteses `[]` e também do `forEach`. Nós vamos estudá-los mais tarde. Por enquanto, apenas lembre-se do resultado da execução do código: ele mostra `Hello`, depois `1`, e depois` 2`.
6365
64-
Agora, vamos adicionar um `alert` antes do código e * não * terminá-lo com um ponto e vírgula:
66+
Agora, vamos remover o ponto e vírgula depois do `alert`:
6567
6668
```js run no-beautify
67-
alert("Haverá um erro")
69+
alert("Hello")
6870
69-
[1, 2].forEach(alert)
71+
[1, 2].forEach(alert);
7072
```
7173
72-
Agora, se nós executarmos o código, apenas o primeiro `alert` é mostrado e então temos um erro!
73-
74-
Mas tudo está bem novamente se adicionarmos um ponto e vírgula após `alert`:
75-
```js run
76-
alert("Tudo bem agora");
74+
A diferença em comparação com o código acima é de apenas um caractere: o ponto e vírgula da primeira linha se foi.
7775
78-
[1, 2].forEach(alert)
79-
```
76+
Se nós executarmos esse código, apenas o primeiro `Hello` é mostrado (e então há um erro, você pode precisar de abrir a consola para o ver). Já não existem mais números.
8077
81-
Agora temos a mensagem "Tudo bem agora" seguida por "1" e "2".
78+
Isso ocorre porque o JavaScript não assume um ponto e vírgula antes dos colchetes `[...]`. Portanto, o código no último exemplo é tratado como uma única instrução.
8279
83-
84-
O erro na variante sem ponto e vírgula ocorre porque o JavaScript não assume um ponto e vírgula antes dos colchetes `[...]`.
85-
86-
Portanto, como o ponto e vírgula não é inserido automaticamente, o código no primeiro exemplo é tratado como uma única instrução. Veja como o mecanismo vê isso:
80+
Veja como o mecanismo vê isso:
8781
8882
```js run no-beautify
89-
alert("Haverá um erro")[1, 2].forEach(alert)
83+
alert("Hello")[1, 2].forEach(alert);
9084
```
9185
92-
Mas devem ser duas declarações separadas, não uma. Tal fusão neste caso é completamente errado, daí o erro. Isso pode acontecer em outras situações.
86+
Parece estranho, não? Tal fusão neste caso é completamente errada. Nós precisamos de colocar um ponto e vírgula depois de `alert` para o código funcionar corretamente.
87+
88+
Isso também pode acontecer em outras situações.
9389
````
9490

9591
Recomendamos colocar ponto e vírgula entre as frases, mesmo que estejam separadas por novas linhas. Esta regra é amplamente adotada pela comunidade. Vamos notar mais uma vez -- *é possível* deixar de fora os pontos e vírgulas na maior parte do tempo. Mas é mais seguro -- especialmente para um iniciante -- usá-los.

1-js/02-first-steps/04-variables/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Agora, podemos colocar alguns dados usando o operador de atribuição `=`:
2424
let message;
2525

2626
*!*
27-
message = 'Olá'; // armazenar a string
27+
message = 'Olá'; // armazene a string 'Olá' na variável chamada message
2828
*/!*
2929
```
3030

1-js/02-first-steps/05-types/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ Os valores numéricos especiais pertencem formalmente ao tipo "número". Claro q
6464

6565
Veremos mais sobre como trabalhar com números no capítulo <info:number>.
6666

67-
## BigInt
67+
## BigInt [#bigint-type]
6868

6969
In JavaScript, the "number" type cannot represent integer values larger than <code>(2<sup>53</sup>-1)</code> (that's `9007199254740991`), or less than <code>-(2<sup>53</sup>-1)</code> for negatives. It's a technical limitation caused by their internal representation.
7070

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
1-
JavaScript-code:
1+
Código Javascript:
22

33
```js demo run
4-
let name = prompt("What is your name?", "");
4+
let name = prompt("Qual o seu nome?", "");
55
alert(name);
66
```
77

8-
The full page:
8+
Página completa:
99

1010
```html
1111
<!DOCTYPE html>
1212
<html>
1313
<body>
1414

15-
<script>
16-
'use strict';
15+
<script>
16+
'use strict';
1717
18-
let name = prompt("What is your name?", "");
19-
alert(name);
20-
</script>
18+
let name = prompt("Qual o seu nome?", "");
19+
alert(name);
20+
</script>
2121

22-
</body>
22+
</body>
2323
</html>
2424
```

1-js/02-first-steps/06-alert-prompt-confirm/1-simple-page/task.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ importance: 4
22

33
---
44

5-
# A simple page
5+
# Uma página simples
66

7-
Create a web-page that asks for a name and outputs it.
7+
Crie uma página web que solicite um nome e o exiba.
88

99
[demo]
Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,105 +1,105 @@
1-
# Interaction: alert, prompt, confirm
1+
# Interação: alert, prompt, confirm
22

3-
As we'll be using the browser as our demo environment, let's see a couple of functions to interact with the user: `alert`, `prompt` and `confirm`.
3+
Como usuaremos o navegador como nosso ambiente de demonstração, vamos ver algumas funções para interagir com o usuário: `alert`, `prompt` e `confirm`.
44

55
## alert
66

7-
This one we've seen already. It shows a message and waits for the user to press "OK".
7+
Esta já vimos. Ela mostra uma mensagem e aguarda o usuário pressionar "OK".
88

9-
For example:
9+
Por exemplo:
1010

1111
```js run
12-
alert("Hello");
12+
alert('Olá');
1313
```
1414

15-
The mini-window with the message is called a *modal window*. The word "modal" means that the visitor can't interact with the rest of the page, press other buttons, etc, until they have dealt with the window. In this case -- until they press "OK".
15+
A mini-janela com a mensagem é chamada de _modal window_. A palavra "modal" significa que o visitante não pode interagir com o resto da página, pressionar outros botões, etc, até que ele tenha lidado com a janela. Nesse caso -- até pressionar "OK".
1616

1717
## prompt
1818

19-
The function `prompt` accepts two arguments:
19+
A função `prompt` aceita dois argumentos:
2020

2121
```js no-beautify
2222
result = prompt(title, [default]);
2323
```
2424

25-
It shows a modal window with a text message, an input field for the visitor, and the buttons OK/Cancel.
25+
Mostra uma janela modal com uma mensagem de texto, um campo de entrada para o visitante, e os botões OK/Cancel.
2626

2727
`title`
28-
: The text to show the visitor.
28+
: Texto para ser mostrado ao visitante.
2929

3030
`default`
31-
: An optional second parameter, the initial value for the input field.
31+
: Um parâmetro opcional, o valor inicial para o campo de entrada.
3232

33-
```smart header="The square brackets in syntax `[...]`"
34-
The square brackets around `default` in the syntax above denote that the parameter is optional, not required.
35-
```
33+
```smart header="Os colchetes na sintaxe `[...]`"
34+
Os colchetes ao redor de `default` na sintaxe acima denotam que o parâmetro é opcional, não é obrigatório.
35+
````
3636
37-
The visitor can type something in the prompt input field and press OK. Then we get that text in the `result`. Or they can cancel the input by pressing Cancel or hitting the `key:Esc` key, then we get `null` as the `result`.
37+
O visitante pode digitar algo no campo de entrada do prompt e pressionar OK. Então nós temos esse texto no `result`. Ou ele pode cancelar a entrada pressionando Cancelar ou `key:Esc`, então nos temos `null` como o `result`.
3838
39-
The call to `prompt` returns the text from the input field or `null` if the input was canceled.
39+
A chamada do `prompt` retorna o texto do campo de entrada ou `null` se a entrada for cancelada.
4040
41-
For instance:
41+
Por exemplo:
4242
4343
```js run
44-
let age = prompt('How old are you?', 100);
44+
let age = prompt('Qual a sua idade?', 100);
4545
46-
alert(`You are ${age} years old!`); // You are 100 years old!
47-
```
46+
alert(`Você tem ${age} anos!`); //Você tem 100 anos!
47+
````
4848

49-
````warn header="In IE: always supply a `default`"
50-
The second parameter is optional, but if we don't supply it, Internet Explorer will insert the text `"undefined"` into the prompt.
49+
````warn header="No IE: sempre forneça um `default`"
50+
O segundo parâmetro é opcional, mas se não o fornecermos, o Internet Explorer irá inserir o texto `"undefined"` no prompt.
5151

52-
Run this code in Internet Explorer to see:
52+
Execute este código no Internet Explorer para visualizar:
5353

5454
```js run
55-
let test = prompt("Test");
55+
let test = prompt('Teste');
5656
```
5757

58-
So, for prompts to look good in IE, we recommend always providing the second argument:
58+
Portanto, para que os prompts tenham boa aparência no IE, recomendamos que sempre forneça o segundo argumento:
5959

6060
```js run
61-
let test = prompt("Test", ''); // <-- for IE
61+
let test = prompt('Teste', ''); // <-- para o IE
6262
```
6363
````
6464
6565
## confirm
6666
67-
The syntax:
67+
A sintaxe:
6868
6969
```js
7070
result = confirm(question);
7171
```
7272
73-
The function `confirm` shows a modal window with a `question` and two buttons: OK and Cancel.
73+
A função `confirm` mostra uma janela modal com uma `question` e dois botões: OK e Cancelar.
7474
75-
The result is `true` if OK is pressed and `false` otherwise.
75+
O resultado é `true` se OK for pressionado e `false` caso contrário.
7676
77-
For example:
77+
Por exemplo:
7878
7979
```js run
80-
let isBoss = confirm("Are you the boss?");
80+
let isBoss = confirm("Você é o chefe?");
8181
82-
alert( isBoss ); // true if OK is pressed
82+
alert( isBoss ); // true se OK for pressionado
8383
```
8484
85-
## Summary
85+
## Sumário
8686
87-
We covered 3 browser-specific functions to interact with visitors:
87+
Cobrimos 3 funções específicas do navegador para interagir com o visitante:
8888
8989
`alert`
90-
: shows a message.
90+
: mostra uma mensagem.
9191
9292
`prompt`
93-
: shows a message asking the user to input text. It returns the text or, if Cancel button or `key:Esc` is clicked, `null`.
93+
: mostra uma mensagem pedindo para o usuário inserir texto. Ela retorna o texto ou, se CANCEL ou `key:Esc` for clicado, `null`.
9494
9595
`confirm`
96-
: shows a message and waits for the user to press "OK" or "Cancel". It returns `true` for OK and `false` for Cancel/`key:Esc`.
96+
: mostra uma mensagem e espera que o usuário pressione "OK" ou "Cancel". Ela retorna `true` para OK e `false` para Cancel/`key:Esc`.
9797
98-
All these methods are modal: they pause script execution and don't allow the visitor to interact with the rest of the page until the window has been dismissed.
98+
Todos esse métodos são modais: eles pausam a execução do script e não permitem ao visitante interagir com o resto da página até que a janela seja descartada.
9999
100-
There are two limitations shared by all the methods above:
100+
Existem duas limitações compartilhadas entre esses metódos acima:
101101
102-
1. The exact location of the modal window is determined by the browser. Usually, it's in the center.
103-
2. The exact look of the window also depends on the browser. We can't modify it.
102+
1. A localização exata da janela modal é determinada pelo navegador. Geralmente, está no centro.
103+
2. A aparência exata da janela também depende do navegador. Nós não podemos modificá-la.
104104
105-
That is the price for simplicity. There are other ways to show nicer windows and richer interaction with the visitor, but if "bells and whistles" do not matter much, these methods work just fine.
105+
Este é o preço da simplicidade. Existem outras maneiras de mostrar janelas mais agradáveis e interações mais ricas aos visitantes, mas se "sinos e assobios" não importam muito, esses métodos funcionam bem.

1-js/02-first-steps/08-operators/3-primitive-conversions-questions/solution.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ true + false = 1
99
"$" + 4 + 5 = "$45"
1010
"4" - 2 = 2
1111
"4px" - 2 = NaN
12-
7 / 0 = Infinity
1312
" -9 " + 5 = " -9 5" // (3)
1413
" -9 " - 5 = -14 // (4)
1514
null + 1 = 1 // (5)

1-js/02-first-steps/08-operators/3-primitive-conversions-questions/task.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ true + false
1616
"$" + 4 + 5
1717
"4" - 2
1818
"4px" - 2
19-
7 / 0
2019
" -9 " + 5
2120
" -9 " - 5
2221
null + 1

0 commit comments

Comments
 (0)