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/01-getting-started/1-intro/article.md
+25Lines changed: 25 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,16 +4,25 @@ Vamos ver o que há de tão especial no JavaScript, o que podemos fazer com ele,
4
4
5
5
## O que é JavaScript?
6
6
7
+
<<<<<<< HEAD
7
8
*JavaScript* foi inicialmente criado para *" tornar páginas web vivas "*.
9
+
=======
10
+
*JavaScript* was initially created to "make web pages alive".
11
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
8
12
9
13
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.
10
14
11
15
Os scripts são fornecidos e executados como texto puro. Eles não precisam de preparação ou compilação especial para serem executados.
12
16
13
17
Neste aspecto, o JavaScript é muito diferente de outra linguagem chamada [Java](https://pt.wikipedia.org/wiki/Java_(linguagem_de_programação)).
14
18
19
+
<<<<<<< HEAD
15
20
```smart header="Por que <u>Java</u>Script?"
16
21
Quando foi criado, inicialmente o JavaScript tinha outro nome: "LiveScript". Mas Java era muito popular naquela época, então foi decidido que posicionar uma nova linguagem como um "irmão mais novo" de Java ajudaria.
22
+
=======
23
+
```smart header="Why is it called <u>Java</u>Script?"
24
+
When JavaScript was created, it initially had another name: "LiveScript". But Java was very popular at that time, so it was decided that positioning a new language as a "younger brother" of Java would help.
25
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
17
26
18
27
Mas à medida que ele evoluiu, o JavaScript se tornou uma linguagem totalmente independente com sua própria especificação chamada [ECMAScript] (http://en.wikipedia.org/wiki/ECMAScript), e agora ele não tem nenhuma relação com Java.
19
28
```
@@ -38,7 +47,11 @@ Os interpretadores são complicados. Mas o básico é fácil.
38
47
2. Depois converte ("compila") o script para a linguagem da máquina.
39
48
3. E então o código da máquina é executado, bem rápido.
40
49
50
+
<<<<<<< HEAD
41
51
O interpretador aplica otimizações em cada etapa do processo. Ele ainda observa o script compilado enquanto ele roda, analisa os dados que passam por ele e aplica otimizações ao código da máquina com base nesse conhecimento. Quando isso é feito, os scripts são executados rapidamente.
52
+
=======
53
+
The engine applies optimizations at each step of the process. It even watches the compiled script as it runs, analyzes the data that flows through it, and further optimizes the machine code based on that knowledge.
54
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
42
55
```
43
56
44
57
## O que o JavaScript no navegador pode fazer?
@@ -63,7 +76,11 @@ As habilidades do JavaScript no navegador são limitadas por uma questão de seg
63
76
64
77
Exemplos de tais restrições incluem:
65
78
79
+
<<<<<<< HEAD
66
80
- JavaScript em uma página não pode ler/gravar arquivos arbitrários no disco rígido, copiá-los ou executar programas. Não tem acesso direto às funções do sistema operacional.
81
+
=======
82
+
- JavaScript on a webpage may not read/write arbitrary files on the hard disk, copy them or execute programs. It has no direct access to OS functions.
83
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
67
84
68
85
Os navegadores modernos permitem que ele trabalhe com arquivos, mas o acesso é limitado e fornecido apenas se o usuário executar determinadas ações, como "dropping" de um arquivo em uma janela do navegador ou selecioná-lo por meio de uma tag `<input>`.
69
86
@@ -105,7 +122,15 @@ Então, recentemente uma infinidade de novas linguagens apareceu, que são *tran
105
122
106
123
Ferramentas modernas tornam a transpilação muito rápida e transparente, permitindo que os desenvolvedores codifiquem em outra linguagem e auto-convertendo-a "sob o capô".
107
124
125
+
<<<<<<< HEAD
108
126
Exemplos de tais linguagens:
127
+
=======
128
+
-[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.
129
+
-[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.
130
+
-[Flow](http://flow.org/) also adds data typing, but in a different way. Developed by Facebook.
131
+
-[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.
132
+
-[Brython](https://brython.info/) is a Python transpiler to JavaScript that allow to write application in pure Python without JavaScript.
133
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
109
134
110
135
-[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.
111
136
-[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.
Copy file name to clipboardExpand all lines: 1-js/01-getting-started/2-manuals-specifications/article.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,11 +6,19 @@ Este livro é um *tutorial*. Ele tem como objetivo lhe ajudar a aprender gradual
6
6
7
7
A [Especificacão ECMA-262](https://www.ecma-international.org/publications/standards/Ecma-262.htm) contém as mais profundas, detalhadas e formalizadas informações sobre JavaScript. Ela define a linguagem.
8
8
9
+
<<<<<<< HEAD
9
10
Mas, estando num formato mais formal, fica difícil de entender à primeira vista. Porém, se você precisa da mais confiável fonte de informações sobre detalhes da linguagem, está no lugar certo. Contudo, não é para o uso cotidiano.
11
+
=======
12
+
[The ECMA-262 specification](https://www.ecma-international.org/publications/standards/Ecma-262.htm) contains the most in-depth, detailed and formalized information about JavaScript. It defines the language.
13
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
10
14
11
15
Uma nova versão dessa especificação é lançada todos os anos. Entre estes lançamentos, a sua última versão de esboço se encontra em <https://tc39.es/ecma262/>.
12
16
17
+
<<<<<<< HEAD
13
18
Para ler sobre as mais novas funcionalidades (*bleeding-edge features*), incluindo as que estão em fase de padronização (chamadas também de "estágio 3"), veja as suas propostas em <https://github.com/tc39/proposals>.
19
+
=======
20
+
A new specification version is released every year. In-between these releases, the latest specification draft is at <https://tc39.es/ecma262/>.
21
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
14
22
15
23
E mais, se você está desenvolvendo para browsers, há outras especificações que cobrem esta demanda na [segunda parte](https://javascript.info/browser-environment) do tutorial.
Copy file name to clipboardExpand all lines: 1-js/01-getting-started/3-code-editors/article.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,15 @@ A principal diferença entre um "editor leve" e uma "IDE", é que uma IDE trabal
31
31
32
32
Na prática, os editores leves podem ter muitos plug-ins, incluindo analisadores de sintaxe no nível de diretório e preenchimentos automáticos, portanto não há uma limitação rígida entre um editor leve e uma IDE.
33
33
34
+
<<<<<<< HEAD
34
35
As seguintes opções merecem sua atenção:
36
+
=======
37
+
-[Atom](https://atom.io/) (cross-platform, free).
38
+
-[Visual Studio Code](https://code.visualstudio.com/) (cross-platform, free).
Copy file name to clipboardExpand all lines: 1-js/01-getting-started/4-devtools/article.md
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,11 +29,23 @@ O aspecto exato das ferramentas de desenvolvimento depende da sua versão do Chr
29
29
- Aqui podemos ver a mensagem de erro de cor vermelha. Neste caso, o script contém um comando "lalala" desconhecido.
30
30
- À direita, há um link clicável para o código-fonte `bug.html:12` com o número da linha onde o erro ocorreu.
31
31
32
+
<<<<<<< HEAD
32
33
Abaixo da mensagem de erro, há um símbolo azul `>`. Ele marca uma "linha de comando" onde podemos digitar comandos JavaScript. Pressione `key:Enter` para executá-los (`key:Shift+Enter` para introduzir comandos multi-linha).
34
+
=======
35
+
Below the error message, there is a blue `>` symbol. It marks a "command line" where we can type JavaScript commands. Press `key:Enter` to run them.
36
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
33
37
34
38
Agora podemos ver erros, e isso é suficiente para começar. Voltaremos mais tarde às ferramentas de desenvolvedor e abordaremos a depuração mais profundamente no capítulo <info:debugging-chrome>.
35
39
40
+
<<<<<<< HEAD
36
41
## Firefox, Edge, e outros
42
+
=======
43
+
```smart header="Multi-line input"
44
+
Usually, when we put a line of code into the console, and then press `key:Enter`, it executes.
45
+
46
+
To insert multiple lines, press `key:Shift+Enter`. This way one can enter long fragments of JavaScript code.
47
+
```
48
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
37
49
38
50
A maioria dos outros navegadores usam `key:F12` para abrir ferramentas de desenvolvimento.
39
51
@@ -51,11 +63,15 @@ Agora o `key:Cmd+Opt+C` pode alternar o console. Além disso, note que o novo it
51
63
52
64
## Entrada multi-linha
53
65
66
+
<<<<<<< HEAD
54
67
Normalmente, quando colocamos uma linha de código no console, e então pressionamos `key:Enter`, ele executa.
55
68
56
69
Para inserir várias linhas, pressione `key:Shift+Enter`.
57
70
58
71
## Resumo
72
+
=======
73
+
## Summary
74
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
59
75
60
76
- As ferramentas de desenvolvedor nos permitem ver erros, executar comandos, examinar variáveis e muito mais.
61
77
- Elas podem ser abertas com `key:F12` para a maioria dos navegadores no Windows. O Chrome para Mac precisa de `key:Cmd+Opt+J`, Safari: `key:Cmd+Opt+C` (precisa ser ativado primeiro).
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/01-hello-world/article.md
+10-1Lines changed: 10 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,8 +45,13 @@ A tag `<script>` contém código JavaScript que é executado automaticamente qua
45
45
46
46
A tag `<script>` tem alguns atributos que raramente são usados hoje em dia, mas que ainda podem ser encontrados em códigos antigos:
47
47
48
+
<<<<<<< HEAD
48
49
O atributo `type`: <code><script <u>type</u>=...></code>
49
50
: 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.
51
+
=======
52
+
The `type` attribute: <code><script <u>type</u>=...></code>
53
+
: 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.
54
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
50
55
51
56
O atributo `language`: <code><script <u>language</u>=...></code>
52
57
: 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.
@@ -60,7 +65,11 @@ Comentários antes e depois dos scripts.
60
65
//--></script>
61
66
```
62
67
68
+
<<<<<<< HEAD
63
69
Esse truque não é usado no JavaScript moderno. Esses comentários esconderam código JavaScript de navegadores antigos que não sabiam como processar a tag `<script>`. Como os navegadores lançados nos últimos 15 anos não têm esse problema, esse tipo de comentário pode ajudá-lo a identificar códigos realmente antigos.
70
+
=======
71
+
This trick isn't used in modern JavaScript. These comments hide JavaScript code from old browsers that didn't know how to process the `<script>` tag. Since browsers released in the last 15 years don't have this issue, this kind of comment can help you identify really old code.
72
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
64
73
65
74
66
75
## Scripts externos
@@ -80,7 +89,7 @@ Você também pode fornecer um caminho relativo a partir da página atual. Por e
80
89
Nós também podemos dar uma URL completa. Por exemplo:
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/02-structure/article.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -93,7 +93,11 @@ Mas devem ser duas declarações separadas, não uma. Tal fusão neste caso é c
93
93
94
94
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.
95
95
96
+
<<<<<<< HEAD
96
97
## Comentários
98
+
=======
99
+
## Comments [#code-comments]
100
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
97
101
98
102
Com o passar do tempo, os programas tornam-se cada vez mais complexos. Torna-se necessário adicionar *comentários* que descrevem o que o código faz e porquê.
99
103
@@ -135,7 +139,11 @@ alert('Mundo');
135
139
```
136
140
137
141
```smart header="Use hotkeys!"
142
+
<<<<<<< HEAD
138
143
Na maioria dos editores, uma linha de código pode ser comentada pressionando a tecla de atalho `key:Ctrl+/` para um comentário de linha única e algo como `key:Ctrl+Shift+/` -- para comentários multilinha (selecione um pedaço de código e pressione a tecla de atalho). Para Mac, tente `key:Cmd` em vez de `key:Ctrl`.
144
+
=======
145
+
In most editors, a line of code can be commented out by pressing the `key:Ctrl+/` hotkey for a single-line comment and something like `key:Ctrl+Shift+/` -- for multiline comments (select a piece of code and press the hotkey). For Mac, try `key:Cmd` instead of `key:Ctrl` and `key:Option` instead of `key:Shift`.
146
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
139
147
```
140
148
141
149
````warn header="Comentários aninhados não são suportados!"
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/03-strict-mode/article.md
+51Lines changed: 51 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,8 +19,12 @@ For example:
19
19
...
20
20
```
21
21
22
+
<<<<<<< HEAD
22
23
Nós vamos aprender sobre funções, uma forma de agupar comandos, em breve.
23
24
25
+
=======
26
+
Quite soon we're going to learn functions (a way to group commands), so let's note in advance that `"use strict"` can be put at the beginning of a function. Doing that enables strict mode in that function only. But usually people use it for the whole script.
27
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
24
28
25
29
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.
26
30
@@ -39,18 +43,44 @@ Apenas comentários devem aparecer acima de `"use strict"`.
39
43
40
44
## Console do navegador
41
45
46
+
<<<<<<< HEAD
42
47
Para o futuro, quando você usar o console do navegador para testar funcionalidades, observe que ele não "usa strict" por padrão.
43
48
44
49
As vezes, quando usar `use strict` faz alguma diferença, você terá resultados incorretos.
50
+
=======
51
+
Once we enter strict mode, there's no going back.
52
+
```
53
+
54
+
## Browser console
55
+
56
+
When you use a [developer console](info:devtools) to run code, please note that it doesn't `use strict` by default.
57
+
58
+
Sometimes, when `use strict` makes a difference, you'll get incorrect results.
59
+
60
+
So, how to actually `use strict` in the console?
61
+
62
+
First, you can try to press `key:Shift+Enter` to input multiple lines, and put `use strict` on top, like this:
63
+
64
+
```js
65
+
'use strict'; <Shift+Enter for a newline>
66
+
// ...your code
67
+
<Enter to run>
68
+
```
69
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
45
70
46
71
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.
47
72
73
+
<<<<<<< HEAD
48
74
A maneira confiável de garantir `use strict` seria inserir o código no console da seguinte forma:
75
+
=======
76
+
If it doesn't, e.g. in an old browser, there's an ugly, but reliable way to ensure `use strict`. Put it inside this kind of wrapper:
77
+
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
49
78
50
79
```js
51
80
(function() {
52
81
'use strict';
53
82
83
+
<<<<<<<HEAD
54
84
// ...seu código...
55
85
})()
56
86
```
@@ -67,3 +97,24 @@ Por agora, de um momento geral, basta saber sobre isso:
67
97
2. O modo estrito é ativado colocando `" use strict "` no topo de um script ou função. Vários recursos de idioma, como "classes" e "módulos", ativam o modo estrito automaticamente.
68
98
3. Modo estrito é suportado por todos os navegadores modernos.
69
99
4. Recomendamos sempre iniciar scripts com `" use strict "`. Todos os exemplos neste tutorial assumem o modo estrito, a menos que (muito raramente) seja especificado de outra forma.
100
+
=======
101
+
// ...your code here...
102
+
})()
103
+
```
104
+
105
+
## Should we "use strict"?
106
+
107
+
The question may sound obvious, but it's not so.
108
+
109
+
One could recommend to start scripts with `"use strict"`... But you know what's cool?
110
+
111
+
Modern JavaScript supports "classes" and "modules" - advanced language structures (we'll surely get to them), that enable `use strict` automatically. So we don't need to add the `"use strict"` directive, if we use them.
112
+
113
+
**So, for now `"use strict";` is a welcome guest at the top of your scripts. Later, when your code is all in classes and modules, you may omit it.**
114
+
115
+
As of now, we've got to know about `use strict` in general.
116
+
117
+
In the next chapters, as we learn language features, we'll see the differences between the strict and old modes. Luckily, there aren't many and they actually make our lives better.
118
+
119
+
All examples in this tutorial assume strict mode unless (very rarely) specified otherwise.
0 commit comments