Skip to content

Commit a9dbcc0

Browse files
authored
Merge pull request #41 from javascript-tutorial/revert-39-sync-5cb9760a
Revert "Sync with upstream @ 5cb9760"
2 parents 900528c + 8ff1301 commit a9dbcc0

File tree

425 files changed

+5125
-9309
lines changed

Some content is hidden

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

425 files changed

+5125
-9309
lines changed

.gitattributes

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
* text=auto eol=lf
2-
*.svg binary

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

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,7 @@ Vamos ver o que há de tão especial no JavaScript, o que podemos fazer com ele,
66

77
*JavaScript* foi inicialmente criado para *" tornar páginas web vivas "*.
88

9-
<<<<<<< HEAD
109
Os programas nesta linguagem são chamados de *scripts*. Eles podem ser escritos diretamente no HTML de uma página web e executados automaticamente quando a página é carregada.
11-
=======
12-
The programs in this language are called *scripts*. They can be written right in a web page's HTML and run automatically as the page loads.
13-
>>>>>>> 5cb9760abb8499bf1e99042d866c3c1db8cd61ca
1410

1511
Os scripts são fornecidos e executados como texto puro. Eles não precisam de preparação ou compilação especial para serem executados.
1612

@@ -74,11 +70,7 @@ Exemplos de tais restrições incluem:
7470
Existem maneiras de interagir com a câmera / microfone e outros dispositivos, mas eles exigem permissão explícita do usuário. Assim, uma página habilitada para JavaScript pode não habilmente habilitar uma câmera web, observar os arredores e enviar as informações para a [NSA](https://pt.wikipedia.org/wiki/Ag%C3%AAncia_de_Seguran%C3%A7a_Nacional).
7571
- Diferentes abas/janelas geralmente não se conhecem mutuamente. Às vezes sim, por exemplo, quando uma janela usa JavaScript para abrir a outra. Mas mesmo neste caso, JavaScript de uma página pode não acessar a outra se eles vierem de sites diferentes (de um domínio, protocolo ou porta diferente).
7672

77-
<<<<<<< HEAD
7873
Isso é chamado de "Política de mesma origem ". Para contornar isso, *ambas as páginas* devem conter um código JavaScript especial que lida com a troca de dados.
79-
=======
80-
This is called the "Same Origin Policy". To work around that, *both pages* must agree for data exchange and contain a special JavaScript code that handles it. We'll cover that in the tutorial.
81-
>>>>>>> 5cb9760abb8499bf1e99042d866c3c1db8cd61ca
8274

8375
Essa limitação é, novamente, para a segurança do usuário. Uma página de `http://umsitequalquer.com.br` que um usuário abriu não deve poder alcançar uma outra aba do navegador com a URL `http://gmail.com` e roubar a informação de lá.
8476
- O JavaScript pode se comunicar facilmente pela rede com o servidor de onde a página atual veio. Mas sua capacidade de receber dados de outros sites / domínios é prejudicada. Embora possível, requer acordo explícito (expresso em cabeçalhos HTTP) do lado remoto. Mais uma vez, isso é uma limitação de segurança.
@@ -100,12 +92,8 @@ JavaScript é a única tecnologia de navegador que combina estas três qualidade
10092

10193
Isso é o que torna o JavaScript único. É por isso que é a ferramenta mais difundida para criar interfaces de navegador.
10294

103-
<<<<<<< HEAD
10495
Ao passo que planeja aprender uma nova tecnologia, é benéfico verificar suas perspectivas. Então, vamos seguir para as tendências modernas que o afetam, incluindo novas linguagens e habilidades de navegador.
10596

106-
=======
107-
That said, JavaScript also allows to create servers, mobile applications, etc.
108-
>>>>>>> 5cb9760abb8499bf1e99042d866c3c1db8cd61ca
10997

11098
## Linguagens "sobre" JavaScript
11199

@@ -119,20 +107,11 @@ Ferramentas modernas tornam a transpilação muito rápida e transparente, permi
119107

120108
Exemplos de tais linguagens:
121109

122-
<<<<<<< HEAD
123110
- [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.
124111
- [TypeScript](http://www.typescriptlang.org/) está concentrado em adicionar "dados estritos de digitação" para simplificar o desenvolvimento e suporte de sistemas complexos. É desenvolvido pela Microsoft.
125112
- [Dart](https://www.dartlang.org/) é uma linguagem autônoma que tem seu próprio mecanismo que roda em ambientes sem navegador (como aplicativos móveis). Ela foi inicialmente oferecida pelo Google como um substituto para JavaScript, mas a partir de agora, os navegadores exigem que ela seja transpilada para JavaScript da mesma forma que as anteriores.
126113

127114
Há mais. Claro que, mesmo que usemos uma dessas linguagens, também devemos saber JavaScript para entender o que estamos fazendo.
128-
=======
129-
- [CoffeeScript](http://coffeescript.org/) is a "syntactic sugar" for JavaScript. It introduces shorter syntax, allowing us to write clearer and more precise code. Usually, Ruby devs like it.
130-
- [TypeScript](http://www.typescriptlang.org/) is concentrated on adding "strict data typing" to simplify the development and support of complex systems. It is developed by Microsoft.
131-
- [Flow](http://flow.org/) also adds data typing, but in a different way. Developed by Facebook.
132-
- [Dart](https://www.dartlang.org/) is a standalone language that has its own engine that runs in non-browser environments (like mobile apps), but also can be transpiled to JavaScript. Developed by Google.
133-
134-
There are more. Of course, even if we use one of transpiled languages, we should also know JavaScript to really understand what we're doing.
135-
>>>>>>> 5cb9760abb8499bf1e99042d866c3c1db8cd61ca
136115

137116
## Resumo
138117

1-js/01-getting-started/3-code-editors/article.md renamed to 1-js/01-getting-started/2-code-editors/article.md

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ Uma IDE carrega o projeto (que pode ter muitos arquivos), permite navegação en
1212

1313
Se você ainda não tiver selecionado uma IDE, considere as seguintes opções:
1414

15-
<<<<<<< HEAD:1-js/01-getting-started/2-code-editors/article.md
1615
- [WebStorm](http://www.jetbrains.com/webstorm/) para desenvolvimento de front-end. A mesma empresa oferece outros editores para outras linguagens (pago).
1716
- [Netbeans](http://netbeans.org/) (livre).
1817

@@ -21,14 +20,6 @@ Todas essas IDEs são multi-plataforma.
2120
Para Windows, há também "Visual Studio", que não deve ser confundido com "Visual Studio Code". "Visual Studio" é um editor pago e poderoso somente para Windows, bem adequado para a plataforma .NET . Uma versão gratuita é chamada [Visual Studio Community](https://www.visualstudio.com/vs/community/).
2221

2322
Muitas IDEs são pagas, mas têm um período experimental. Seu custo é geralmente desprezível comparado ao salário de um desenvolvedor qualificado, então basta escolher o melhor para você.
24-
=======
25-
- [Visual Studio Code](https://code.visualstudio.com/) (cross-platform, free).
26-
- [WebStorm](http://www.jetbrains.com/webstorm/) (cross-platform, paid).
27-
28-
For Windows, there's also "Visual Studio", not to be confused with "Visual Studio Code". "Visual Studio" is a paid and mighty Windows-only editor, well-suited for the .NET platform. It's also good at JavaScript. There's also a free version [Visual Studio Community](https://www.visualstudio.com/vs/community/).
29-
30-
Many IDEs are paid, but have a trial period. Their cost is usually negligible compared to a qualified developer's salary, so just choose the best one for you.
31-
>>>>>>> 5cb9760abb8499bf1e99042d866c3c1db8cd61ca:1-js/01-getting-started/3-code-editors/article.md
3223

3324
## Editores leves
3425

@@ -42,7 +33,6 @@ Na prática, os editores leves podem ter muitos plug-ins, incluindo analisadores
4233

4334
As seguintes opções merecem sua atenção:
4435

45-
<<<<<<< HEAD:1-js/01-getting-started/2-code-editors/article.md
4636
- [Visual Studio Code](https://code.visualstudio.com/) (plataforma cruzada, livre) também tem muitos recursos similares a IDE.
4737
- [Atom](https://atom.io/) (multi-plataforma, livre).
4838
- [Sublime Text](http://www.sublimetext.com) (multi-plataforma, shareware).
@@ -59,14 +49,6 @@ Eu estou usando:
5949
- Como um editor de peso leve -- [Sublime Text](http://www.sublimetext.com) ou [Atom](https://atom.io/).
6050

6151
## Não vamos discutir
62-
=======
63-
- [Atom](https://atom.io/) (cross-platform, free).
64-
- [Sublime Text](http://www.sublimetext.com) (cross-platform, shareware).
65-
- [Notepad++](https://notepad-plus-plus.org/) (Windows, free).
66-
- [Vim](http://www.vim.org/) and [Emacs](https://www.gnu.org/software/emacs/) are also cool if you know how to use them.
67-
68-
## Let's not argue
69-
>>>>>>> 5cb9760abb8499bf1e99042d866c3c1db8cd61ca:1-js/01-getting-started/3-code-editors/article.md
7052

7153
Os editores nas listas acima são aqueles que eu ou os meus amigos que eu considero bons desenvolvedores têm usado por um longo tempo e estão felizes com eles.
7254

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

Lines changed: 0 additions & 42 deletions
This file was deleted.

1-js/01-getting-started/4-devtools/article.md renamed to 1-js/01-getting-started/3-devtools/article.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,19 +49,11 @@ Abra Preferências e vá para o painel "Avançado". Há uma caixa de seleção n
4949

5050
Agora o `key:Cmd+Opt+C` pode alternar o console. Além disso, note que o novo item do menu superior chamado "Develop" apareceu. Ele tem muitos comandos e opções.
5151

52-
<<<<<<< HEAD:1-js/01-getting-started/3-devtools/article.md
5352
## Entrada multi-linha
5453

5554
Normalmente, quando colocamos uma linha de código no console, e então pressionamos `key:Enter`, ele executa.
5655

5756
Para inserir várias linhas, pressione `key:Shift+Enter`.
58-
=======
59-
```smart header="Multi-line input"
60-
Usually, when we put a line of code into the console, and then press `key:Enter`, it executes.
61-
62-
To insert multiple lines, press `key:Shift+Enter`. This way one can enter long fragments of JavaScript code.
63-
```
64-
>>>>>>> 5cb9760abb8499bf1e99042d866c3c1db8cd61ca:1-js/01-getting-started/4-devtools/article.md
6557

6658
## Resumo
6759

105 KB
Loading
Loading
-107 KB
Binary file not shown.
Binary file not shown.

1-js/02-first-steps/01-hello-world/article.md

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
# Olá, mundo!
22

3-
<<<<<<< HEAD
43
O tutorial que você está lendo é sobre a core do JavaScript, que é independente de plataforma. Mais tarde, você vai aprender sobre Node.js e outras plataformas que o usam.
5-
=======
6-
This part of the tutorial is about core JavaScript, the language itself.
7-
>>>>>>> 5cb9760abb8499bf1e99042d866c3c1db8cd61ca
84

95
Mas precisamos de um ambiente de trabalho para rodar nossos scripts e, como esse livro está online, o navegador é uma boa escolha. Vamos manter a quantidade de comandos específicos do navegador (como `alert`) no mínimo para que você não gaste tempo com eles se você planeja se concentrar em outro ambiente (como Node.js). Vamos focar em JavaScript no navegador na [próxima parte](/ui) do tutorial.
106

@@ -49,13 +45,8 @@ A tag `<script>` contém código JavaScript que é executado automaticamente qua
4945

5046
A tag `<script>` tem alguns atributos que raramente são usados hoje em dia, mas que ainda podem ser encontrados em códigos antigos:
5147

52-
<<<<<<< HEAD
5348
O atributo `type`: <code>&lt;script <u>type</u>=...&gt;</code>
5449
: O antigo padrão HTML, HTML4, requeria um script para ter um `type`. Normalmente era `type="text/javascript"`. Não é mais necessário. Além disso, o moderno padrão HTML, HTML5, mudou totalmente o significado deste atributo. Agora, ele pode ser usado para módulos JavaScript. Mas esse é um tópico avançado; vamos falar sobre módulos em outra parte do tutorial.
55-
=======
56-
The `type` attribute: <code>&lt;script <u>type</u>=...&gt;</code>
57-
: The old HTML standard, HTML4, required a script to have a `type`. Usually it was `type="text/javascript"`. It's not required anymore. Also, the modern HTML standard totally changed the meaning of this attribute. Now, it can be used for JavaScript modules. But that's an advanced topic; we'll talk about modules in another part of the tutorial.
58-
>>>>>>> 5cb9760abb8499bf1e99042d866c3c1db8cd61ca
5950

6051
O atributo `language`: <code>&lt;script <u>language</u>=...&gt;</code>
6152
: Este atributo foi criado para mostrar o idioma do script. Este atributo não faz mais sentido porque JavaScript é a linguagem padrão. Não há necessidade de usá-lo.
@@ -82,13 +73,9 @@ Os arquivos de script são anexados ao HTML com o atributo `src`:
8273
<script src="/path/to/script.js"></script>
8374
```
8475

85-
<<<<<<< HEAD
8676
Aqui, `/path/to/script.js` é um caminho absoluto para o arquivo script (da raiz do site).
8777

8878
Você também pode fornecer um caminho relativo a partir da página atual. Por exemplo, `src="script.js"` significaria um arquivo `"script.js"` na pasta atual.
89-
=======
90-
Here, `/path/to/script.js` is an absolute path to the script from the site root. One can also provide a relative path from the current page. For instance, `src="script.js"` would mean a file `"script.js"` in the current folder.
91-
>>>>>>> 5cb9760abb8499bf1e99042d866c3c1db8cd61ca
9279

9380
Nós também podemos dar uma URL completa. Por exemplo:
9481

1-js/02-first-steps/03-strict-mode/article.md

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,7 @@ Por um longo tempo, o JavaScript evoluiu sem problemas de compatibilidade. Novos
44

55
Isso teve o benefício de nunca quebrar o código existente. Mas a desvantagem foi que qualquer erro ou decisão imperfeita feita pelos criadores do JavaScript acabou ficando presa na linguagem para sempre.
66

7-
<<<<<<< HEAD
87
Este foi o caso até 2009, quando ECMAScript 5 (ES5) apareceu. Adicionou novos recursos à linguagem e modificou alguns dos existentes. Para manter o código antigo funcionando, a maioria das modificações está desativada por padrão. Você precisa habilitá-los explicitamente com uma diretiva especial: `" use strict "`.
9-
=======
10-
This was the case until 2009 when ECMAScript 5 (ES5) appeared. It added new features to the language and modified some of the existing ones. To keep the old code working, most such modifications are off by default. You need to explicitly enable them with a special directive: `"use strict"`.
11-
>>>>>>> 5cb9760abb8499bf1e99042d866c3c1db8cd61ca
128

139
## "use strict"
1410

@@ -23,12 +19,8 @@ For example:
2319
...
2420
```
2521

26-
<<<<<<< HEAD
2722
Nós vamos aprender sobre funções, uma forma de agupar comandos, em breve.
2823

29-
=======
30-
We will learn functions (a way to group commands) soon. Looking ahead, let's note that `"use strict"` can be put at the beginning of the function body instead of the whole script. Doing that enables strict mode in that function only. But usually, people use it for the whole script.
31-
>>>>>>> 5cb9760abb8499bf1e99042d866c3c1db8cd61ca
3224

3325
Vamos apenas observar que "use strict" pode ser colocado no início da maioria dos tipos de funções em vez do script inteiro. Fazer isso habilita o modo estrito apenas nessa função. Mas geralmente, as pessoas usam no script inteiro.
3426

@@ -51,23 +43,9 @@ Para o futuro, quando você usar o console do navegador para testar funcionalida
5143

5244
As vezes, quando usar `use strict` faz alguma diferença, você terá resultados incorretos.
5345

54-
<<<<<<< HEAD
5546
Mesmo se pressionarmos `key: Shift + Enter` para inserir várias linhas e colocar` use strict` no topo, isso não funcionará. Isso é por causa de como o console executa o código internamente.
5647

5748
A maneira confiável de garantir `use strict` seria inserir o código no console da seguinte forma:
58-
=======
59-
You can try to press `key:Shift+Enter` to input multiple lines, and put `use strict` on top, like this:
60-
61-
```js
62-
'use strict'; <Shift+Enter for a newline>
63-
// ...your code
64-
<Enter to run>
65-
```
66-
67-
It works in most browsers, namely Firefox and Chrome.
68-
69-
If it doesn't, the most reliable way to ensure `use strict` would be to input the code into console like this:
70-
>>>>>>> 5cb9760abb8499bf1e99042d866c3c1db8cd61ca
7149

7250
```js
7351
(function() {

1-js/02-first-steps/04-variables/2-declare-variables/solution.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
<<<<<<< HEAD
21
Primeiro, a variável para o nome do nosso planeta.
3-
=======
4-
## The variable for our planet
5-
>>>>>>> 5cb9760abb8499bf1e99042d866c3c1db8cd61ca
62

73
Isso é simples:
84

@@ -12,11 +8,7 @@ let ourPlanetName = "Earth";
128

139
Note que poderíamos usar um nome mais curto, `planet`, mas pode não ser óbvio a que planeta se refere. É bom ser mais detalhado. Pelo menos até a variável isNotTooLong.
1410

15-
<<<<<<< HEAD
1611
Em segundo lugar, o nome do visitante atual:
17-
=======
18-
## The name of the current visitor
19-
>>>>>>> 5cb9760abb8499bf1e99042d866c3c1db8cd61ca
2012

2113
```js
2214
let currentUserName = "John";

1-js/02-first-steps/04-variables/3-uppercast-constant/solution.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,4 @@ Nós geralmente usamos letras maiúsculas para constantes que são "hard-coded".
22

33
Neste código, o `birthday` é exatamente assim. Então nós poderíamos usar a maiúscula para ele.
44

5-
<<<<<<< HEAD
6-
Em contraste, `age` é avaliada em tempo de execução. Hoje temos uma idade, um ano depois teremos outra. É constante no sentido de não mudar através da execução do código. Mas é um pouco "menos constante" do que `birthday`, é calculada, por isso devemos manter as minúsculas para ela.
7-
=======
8-
In contrast, `age` is evaluated in run-time. Today we have one age, a year after we'll have another one. It is constant in a sense that it does not change through the code execution. But it is a bit "less of a constant" than `birthday`: it is calculated, so we should keep the lower case for it.
9-
>>>>>>> 5cb9760abb8499bf1e99042d866c3c1db8cd61ca
5+
Em contraste, `age` é avaliada em tempo de execução. Hoje temos uma idade, um ano depois teremos outra. É constante no sentido de não mudar através da execução do código. Mas é um pouco "menos constante" do que `birthday`, é calculada, por isso devemos manter as minúsculas para ela.

0 commit comments

Comments
 (0)