Skip to content

Commit 3d348cc

Browse files
committed
Resolve conflicts
1 parent c0f1767 commit 3d348cc

File tree

6 files changed

+22
-69
lines changed

6 files changed

+22
-69
lines changed

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

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +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-
<<<<<<< HEAD
28-
- [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.
2928
- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- no Firefox.
3029
- ...Há outros codinomes como "Chakra" para o IE, "JavaScriptCore", "Nitro" e "SquirrelFish" para Safari, etc.
3130

32-
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.
33-
=======
34-
- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- in Chrome, Opera and Edge.
35-
- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- in Firefox.
36-
- ...There are other codenames like "Chakra" for IE, "JavaScriptCore", "Nitro" and "SquirrelFish" for Safari, etc.
37-
38-
The terms above are good to remember because they are used in developer articles on the internet. We'll use them too. For instance, if "a feature X is supported by V8", then it probably works in Chrome, Opera and Edge.
39-
>>>>>>> 193319c963b9ba86ac7d9590f7261a36ecdcc4d2
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.
4032

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

5446
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.
5547

56-
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.
5749

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

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

Lines changed: 2 additions & 10 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

@@ -31,18 +31,10 @@ Na prática, os editores leves podem ter muitos plug-ins, incluindo analisadores
3131

3232
As seguintes opções merecem sua atenção:
3333

34-
<<<<<<< HEAD
3534
- [Atom](https://atom.io/) (plataforma cruzada, livre).
36-
- [Visual Studio Code](https://code.visualstudio.com/) (plataforma cruzada, livre).
3735
- [Sublime Text](http://www.sublimetext.com) (plataforma cruzada, shareware).
3836
- [Notepad++](https://notepad-plus-plus.org/) (Windows, livre).
3937
- [Vim](http://www.vim.org/) e [Emacs](https://www.gnu.org/software/emacs/) também são legais se você sabe como usá-los.
40-
=======
41-
- [Atom](https://atom.io/) (cross-platform, free).
42-
- [Sublime Text](http://www.sublimetext.com) (cross-platform, shareware).
43-
- [Notepad++](https://notepad-plus-plus.org/) (Windows, free).
44-
- [Vim](http://www.vim.org/) and [Emacs](https://www.gnu.org/software/emacs/) are also cool if you know how to use them.
45-
>>>>>>> 193319c963b9ba86ac7d9590f7261a36ecdcc4d2
4638

4739
## Não vamos discutir
4840

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

Lines changed: 9 additions & 22 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,29 +291,21 @@ 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
305-
<<<<<<< HEAD
306304
- [JSLint](http://www.jslint.com/) -- um dos primeiros *linters*.
307305
- [JSHint](http://www.jshint.com/) -- mais configurações do que *JSLint*.
308-
- [ESLint](http://eslint.org/) -- provávelmente o mais recente.
306+
- [ESLint](http://eslint.org/) -- provavelmente o mais recente.
309307
310308
Todos eles podem executar a tarefa. O autor utiliza [ESLint](http://eslint.org/).
311-
=======
312-
- [JSLint](https://www.jslint.com/) -- one of the first linters.
313-
- [JSHint](https://jshint.com/) -- more settings than JSLint.
314-
- [ESLint](https://eslint.org/) -- probably the newest one.
315-
316-
All of them can do the job. The author uses [ESLint](https://eslint.org/).
317-
>>>>>>> 193319c963b9ba86ac7d9590f7261a36ecdcc4d2
318309
319310
Muitos *linters* estão integrados em editores populares: apenas ative a extensão (*plugin*) no editor e configure o estilo.
320311
@@ -344,11 +335,7 @@ Aqui está um exemplo de um ficheiro `.eslintrc`:
344335
345336
Aqui a diretiva `"extends"` denota que a configuração tem como base o conjunto de configurações em "eslint:recommended". Depois disso, podemos especificar as nossas próprias.
346337
347-
<<<<<<< HEAD
348338
Também é possível descarregar conjuntos de regras de estilo da web e depois estendê-los. Veja em <http://eslint.org/docs/user-guide/getting-started> mais detalhes sobre a instalação.
349-
=======
350-
It is also possible to download style rule sets from the web and extend them instead. See <https://eslint.org/docs/user-guide/getting-started> for more details about installation.
351-
>>>>>>> 193319c963b9ba86ac7d9590f7261a36ecdcc4d2
352339
353340
De igual modo, certos *IDEs* (Ambientes de Desenvolvimento Integrado) têm *linting* incorporado (*built-in*), o que é conveniente mas não tão personalizável como o *ESLint*.
354341

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

Lines changed: 4 additions & 10 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,13 +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-
<<<<<<< HEAD
54-
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.
55-
=======
56-
The "object wrappers" are different for each primitive type and are called: `String`, `Number`, `Boolean`, `Symbol` and `BigInt`. Thus, they provide different sets of methods.
57-
>>>>>>> 193319c963b9ba86ac7d9590f7261a36ecdcc4d2
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.
5852

59-
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.
6054

6155
Veja como isso funciona:
6256

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

7771
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.
7872

79-
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:
8074

8175
```js run
8276
let n = 1.23456;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ 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 = {

1-js/11-async/03-promise-chaining/article.md

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,29 +34,17 @@ new Promise(function(resolve, reject) {
3434

3535
A ideia é que o resultado seja passado através de uma cadeia de tratadores `.then`.
3636

37-
<<<<<<< HEAD
3837
O fluxo é o seguinte:
3938
1. A promessa inicial é resolvida em 1 segundo `(*)`,
40-
2. Então o tratador de `.then` é chamado `(**)`.
41-
3. O valor retornado por ele é passado ao próximo tratador de `.then` `(***)`
39+
2. Então o tratador de `.then` é chamado `(**)`, que por sua vez cria uma nova promessa (resolvida com o valor `2`).
40+
3. O próximo tratador `.then` `(***)` recebe o valor retornado pelo anterior, o processa (o duplica) e ele é passado ao próximo tratador.
4241
4. ...e assim por diante.
43-
=======
44-
Here the flow is:
45-
1. The initial promise resolves in 1 second `(*)`,
46-
2. Then the `.then` handler is called `(**)`, which in turn creates a new promise (resolved with `2` value).
47-
3. The next `then` `(***)` gets the result of the previous one, processes it (doubles) and passes the next handler.
48-
4. ...and so on.
49-
>>>>>>> 193319c963b9ba86ac7d9590f7261a36ecdcc4d2
5042

5143
Como o resultado é passado através da cadeia de tratadores, podemos observar a sequência de chamadas `alert`: `1` -> `2` -> `4`.
5244

5345
![](promise-then-chain.svg)
5446

55-
<<<<<<< HEAD
56-
A coisa toda funciona pois a chamada ao `promise.then` retorna uma promessa, assim podemos chamar o próximo `.then` nesse retorno.
57-
=======
58-
The whole thing works, because every call to a `.then` returns a new promise, so that we can call the next `.then` on it.
59-
>>>>>>> 193319c963b9ba86ac7d9590f7261a36ecdcc4d2
47+
A coisa toda funciona, pois cada chamada ao `.then` retorna uma nova promessa, assim podemos chamar o próximo `.then` nesse retorno.
6048

6149
Quando um tratador retorna um valor, ele se torna o resultado da promessa, então o próximo `.then` é chamado com ele.
6250

0 commit comments

Comments
 (0)