Skip to content

Commit 457da50

Browse files
authored
Merge branch 'javascript-tutorial:master' into master
2 parents 26376d0 + 56a9e45 commit 457da50

File tree

17 files changed

+73
-52
lines changed

17 files changed

+73
-52
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,4 @@ sftp-config.json
2121
Thumbs.db
2222

2323

24+
/svgs

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ O navegador tem um interpretador(motor) incorporado, às vezes chamado de "máqu
2424

2525
Interpretadores diferentes têm "codinomes" diferentes. Por exemplo:
2626

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

31-
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.
31+
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 Chrom, Opera e Edge.
3232

3333
```smart header="Como funcionam os interpretadores?"
3434
@@ -45,7 +45,7 @@ O interpretador aplica otimizações em cada etapa do processo. Ele ainda observ
4545

4646
JavaScript moderno é uma linguagem de programação "segura". Ele não fornece acesso de baixo nível à memória ou CPU, porque foi inicialmente criado para navegadores que não necessitam dele.
4747

48-
As capacidades do JavaScript dependem muito do ambiente em que está sendo executado. Por exemplo, [Node.js](https://wikipedia.org/wiki/Node.js) suporta funções que permitem ao JavaScript ler/gravar arquivos arbitrários, executar solicitações de rede, etc.
48+
As capacidades do JavaScript dependem muito do ambiente em que está sendo executado. Por exemplo, [Node.js]https://pt.wikipedia.org/wiki/Node.js) suporta funções que permitem ao JavaScript ler/gravar arquivos arbitrários, executar solicitações de rede, etc.
4949

5050
O JavaScript no navegador pode fazer tudo relacionado à manipulação de páginas web, interação com o usuário e o servidor web.
5151

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ Uma IDE carrega o projeto (que pode ter muitos arquivos), permite navegação en
1313
Se você ainda não tiver selecionado uma IDE, considere as seguintes opções:
1414

1515
- [Visual Studio Code](https://code.visualstudio.com/) (plataforma cruzada, livre).
16-
- [WebStorm](http://www.jetbrains.com/webstorm/) (plataforma cruzada, pago).
16+
- [WebStorm](https://www.jetbrains.com/pt-br/webstorm/) (plataforma cruzada, pago).
1717

18-
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/).
18+
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://visualstudio.microsoft.com/pt-br/vs/community/).
1919

2020
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ê.
2121

@@ -32,7 +32,6 @@ Na prática, os editores leves podem ter muitos plug-ins, incluindo analisadores
3232
As seguintes opções merecem sua atenção:
3333

3434
- [Atom](https://atom.io/) (plataforma cruzada, livre).
35-
- [Visual Studio Code](https://code.visualstudio.com/) (plataforma cruzada, livre).
3635
- [Sublime Text](http://www.sublimetext.com) (plataforma cruzada, shareware).
3736
- [Notepad++](https://notepad-plus-plus.org/) (Windows, livre).
3837
- [Vim](http://www.vim.org/) e [Emacs](https://www.gnu.org/software/emacs/) também são legais se você sabe como usá-los.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Console do desenvolvedor
22

3-
O código é propenso a erros. Você provavelmente cometerá erros ... Oh, do que estou falando? Você está *inevitavelmente* cometendo erros, pelo menos se você for um humano, não um [robô] (<https://pt.wikipedia.org/wiki/Bender_Bending_Rodr%C3%ADguez).>
3+
O código é propenso a erros. Você provavelmente cometerá erros ... Oh, do que estou falando? Você está *inevitavelmente* cometendo erros, pelo menos se você for um humano, não um [robô] (https://pt.wikipedia.org/wiki/Bender_Bending_Rodr%C3%ADguez).
44

55
Mas no navegador, os usuários não vêem os erros por padrão. Assim, se algo correr mal no script, não veremos de onde está partindo e não poderemos corrigir.
66

1-js/02-first-steps/09-comparison/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ In JavaScript they are written like this:
77
- Greater/less than: <code>a &gt; b</code>, <code>a &lt; b</code>.
88
- Greater/less than or equals: <code>a &gt;= b</code>, <code>a &lt;= b</code>.
99
- Equals: `a == b`, please note the double equality sign `==` means the equality test, while a single one `a = b` means an assignment.
10-
- Not equals. In maths the notation is <code>&ne;</code>, but in JavaScript it's written as <code>a != b</code>.
10+
- Not equals: In maths the notation is <code>&ne;</code>, but in JavaScript it's written as <code>a != b</code>.
1111

1212
In this article we'll learn more about different types of comparisons, how JavaScript makes them, including important peculiarities.
1313

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ This leads to some interesting usage compared to a "pure, classical, boolean-onl
123123

124124
It means that `||` processes its arguments until the first truthy value is reached, and then the value is returned immediately, without even touching the other argument.
125125

126-
That importance of this feature becomes obvious if an operand isn't just a value, but an expression with a side effect, such as a variable assignment or a function call.
126+
The importance of this feature becomes obvious if an operand isn't just a value, but an expression with a side effect, such as a variable assignment or a function call.
127127
128128
In the example below, only the second message is printed:
129129

1-js/03-code-quality/02-coding-style/article.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ if (condição) {
5454

5555
Uma construção de única-linha, tal como `if (condição) doSomething()`, é um importante caso de exceção. Devemos utilizar chavetas, ou não?
5656

57-
Aqui estão variantes com anotações, para que por si mesmo você possa avaliar a sua legíbilidade:
57+
Aqui estão variantes com anotações, para que por si mesmo você possa avaliar a sua legibilidade:
5858

5959
1. 😠 Principiantes, por vezes fazem isto. É mau! As chavetas não são necessárias:
6060
```js
@@ -83,11 +83,12 @@ Para código muito curto, uma única linha é aceitável, ex: `if (cond) return
8383
Ninguém gosta de ler uma longa linha horizontal de código. A melhor prática é a particionar.
8484
8585
Por exemplo:
86-
8786
```js
8887
// o acento grave (*backtick*) ` permite repartir uma *string* por múltiplas linhas
8988
let str = `
90-
O TC39 da ECMA International, é um grupo de desenvolvedores e implementadores de JavaScript, académicos, e outros, colaborando com a comunidade para manter e evoluir a definição de JavaScript.
89+
O TC39 da ECMA International, é um grupo de desenvolvedores e
90+
implementadores de JavaScript, académicos, e outros, colaborando com a comunidade
91+
para manter e evoluir a definição de JavaScript.
9192
`;
9293
```
9394
@@ -148,7 +149,7 @@ Existem dois tipos de indentação:
148149
149150
### Pontos-e-vírgula
150151
151-
Um ponto-e-vírgula deveria estar presente no fim de cada instrução, mesmo que possívelmente pudesse ser omitido.
152+
Um ponto-e-vírgula deveria estar presente no fim de cada instrução, mesmo que possivelmente pudesse ser omitido.
152153
153154
Existem linguagens em que o ponto-e-vírgula é verdadeiramente opcional, e raramente utilizado. Contudo, em JavaScript, há casos em que uma quebra-de-linha não é interpretada como um ponto-e-vírgula, deixando o código vulnerável a erros. Veja mais sobre isto no capítulo <info:structure#semicolon>.
154155
@@ -247,7 +248,6 @@ Se estiver a escrever várias funções "auxiliares" (*"helper" functions*) acom
247248
setHandler(elem);
248249
walkAround();
249250
```
250-
251251
2. O código primeiro, depois as funções:
252252
253253
```js
@@ -269,7 +269,6 @@ Se estiver a escrever várias funções "auxiliares" (*"helper" functions*) acom
269269
...
270270
}
271271
```
272-
273272
3. Mista: uma função é declarada onde for empregue pela primeira vez.
274273
275274
A maior parte da vezes, a segunda variante é a preferida.
@@ -282,7 +281,7 @@ Um guia de estilo contém regras gerais sobre "como escrever" código, ex. que a
282281
283282
Quando todos os membros de uma equipa usam o mesmo guia de estilo, o código parece uniforme, independentemente do membro da equipa que o tenha escrito.
284283
285-
Óbviamente, que uma equipa pode sempre escrever o seu próprio guia de estilo, mas geralmente não há necessidade. Existem muitos guias à escolha.
284+
Obviamente, que uma equipa pode sempre escrever o seu próprio guia de estilo, mas geralmente não há necessidade. Existem muitos guias à escolha.
286285
287286
Algumas opções populares:
288287
@@ -292,19 +291,19 @@ Algumas opções populares:
292291
- [StandardJS](https://standardjs.com/)
293292
- (e muitas mais)
294293
295-
Se for um programador iniciante, começe pela cábula (*cheatsheet*) disponível no início deste capítulo. Depois, poderá procurar por outros guias de estilo afim de colher mais ideias e decidir qual prefere.
294+
Se for um programador iniciante, comece pela cábula (*cheatsheet*) disponível no início deste capítulo. Depois, poderá procurar por outros guias de estilo afim de colher mais ideias e decidir qual prefere.
296295
297296
## *Linters* Automatizados
298297
299-
*Linters*, são ferramentas que automáticamente verificam o estilo do seu código e fazem sugestões para o alterar.
298+
*Linters*, são ferramentas que automaticamente verificam o estilo do seu código e fazem sugestões para o alterar.
300299
301300
O seu ponto-forte reside em, à medida que verificam o estilo, poderem encontrar alguns erros (*bugs*), como nomes de variáveis ou de funções mal-escritos. Devido a esta capacidade, é recomendado que use um *linter* mesmo que não queira aderir a um certo "estilo de código".
302301
303302
Aqui estão algumas das mais conhecidas ferramentas de *linting*:
304303
305304
- [JSLint](http://www.jslint.com/) -- um dos primeiros *linters*.
306305
- [JSHint](http://www.jshint.com/) -- mais configurações do que *JSLint*.
307-
- [ESLint](http://eslint.org/) -- provávelmente o mais recente.
306+
- [ESLint](http://eslint.org/) -- provavelmente o mais recente.
308307
309308
Todos eles podem executar a tarefa. O autor utiliza [ESLint](http://eslint.org/).
310309

1-js/04-object-basics/02-object-copy/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ clone.name = "Pete"; // changed the data in it
133133
alert( user.name ); // still John in the original object
134134
```
135135
136-
Also we can use the method [Object.assign](mdn:js/Object/assign) for that.
136+
Also we can use the method [Object.assign](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) for that.
137137
138138
The syntax is:
139139

1-js/05-data-types/01-primitives-methods/article.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# Métodos de primitivos
22

3-
JavaScript nos permite trabalhar com primitivos (strings, números, etc.) como se fossem objetos.
4-
5-
Eles também fornecem métodos para chamar como se fossem objetos. Estudaremos isso em breve, mas primeiro veremos como isso funciona, porque, é claro, os primitivos não são objetos (e aqui deixaremos isso ainda mais claro).
3+
JavaScript nos permite trabalhar com primitivos (strings, números, etc.) como se fossem objetos. Eles também fornecem métodos para chamar como se fossem objetos. Estudaremos isso em breve, mas primeiro veremos como isso funciona, porque, é claro, os primitivos não são objetos (e aqui deixaremos isso ainda mais claro).
64

75
Vejamos as principais diferenças entre primitivos e objetos.
86

@@ -50,9 +48,9 @@ A solução parece um pouco estranha, mas aqui está:
5048
2. A linguagem permite acesso a métodos e propriedades de strings, números, booleanos e símbolos.
5149
3. Quando isso acontece, um "invólucro de objeto" especial que fornece a funcionalidade extra é criado e, em seguida, é destruído.
5250

53-
Os "invólucros de objeto" são diferentes para cada tipo primitivo e são chamados: `String`, `Number`, `Boolean` e `Symbol`. Assim, eles fornecem diferentes conjuntos de métodos.
51+
Os "invólucros de objeto" são diferentes para cada tipo primitivo e são chamados: `String`, `Number`, `Boolean`, `Symbol` e `BigInt`. Assim, eles fornecem diferentes conjuntos de métodos.
5452

55-
Por exemplo, existe um método para *strings* [str.toUpperCase()](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase) que retorna `str` em letras maiúsculas.
53+
Por exemplo, existe um método para *strings* [str.toUpperCase()](https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase) que retorna `str` em letras maiúsculas.
5654

5755
Veja como isso funciona:
5856

@@ -72,7 +70,7 @@ Portanto, os primitivos podem fornecer métodos, mas ainda permanecem leves.
7270

7371
O mecanismo do JavaScript otimiza muito esse processo. Pode até ignorar a criação do objeto extra. Mas ainda deve seguir a especificação e se comportar como se criasse um.
7472

75-
Um número tem métodos próprios, por exemplo, [toFixed(n)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed) arredonda o número para a precisão dada:
73+
Um número tem métodos próprios, por exemplo, [toFixed(n)](https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed) arredonda o número para a precisão dada:
7674

7775
```js run
7876
let n = 1.23456;

1-js/06-advanced-functions/01-recursion/05-output-single-linked-list-reverse/solution.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ printReverseList(list);
3333

3434
# Using a loop
3535

36-
The loop variant is also a little bit more complicated then the direct output.
36+
The loop variant is also a little bit more complicated than the direct output.
3737

3838
There is no way to get the last value in our `list`. We also can't "go back".
3939

40-
So what we can do is to first go through the items in the direct order and rememeber them in an array, and then output what we remembered in the reverse order:
40+
So what we can do is to first go through the items in the direct order and remember them in an array, and then output what we remembered in the reverse order:
4141

4242
```js run
4343
let list = {

0 commit comments

Comments
 (0)