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
+3-11Lines changed: 3 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,19 +24,11 @@ O navegador tem um interpretador(motor) incorporado, às vezes chamado de "máqu
24
24
25
25
Interpretadores diferentes têm "codinomes" diferentes. Por exemplo:
26
26
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.
29
28
-[SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- no Firefox.
30
29
- ...Há outros codinomes como "Chakra" para o IE, "JavaScriptCore", "Nitro" e "SquirrelFish" para Safari, etc.
31
30
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.
40
32
41
33
```smart header="Como funcionam os interpretadores?"
42
34
@@ -53,7 +45,7 @@ O interpretador aplica otimizações em cada etapa do processo. Ele ainda observ
53
45
54
46
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.
55
47
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.
57
49
58
50
O JavaScript no navegador pode fazer tudo relacionado à manipulação de páginas web, interação com o usuário e o servidor web.
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/).
19
19
20
20
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ê.
21
21
@@ -31,18 +31,10 @@ Na prática, os editores leves podem ter muitos plug-ins, incluindo analisadores
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/02-coding-style/article.md
+9-22Lines changed: 9 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,7 +54,7 @@ if (condição) {
54
54
55
55
Uma construção de única-linha, tal como `if (condição) doSomething()`, é um importante caso de exceção. Devemos utilizar chavetas, ou não?
56
56
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:
58
58
59
59
1. 😠 Principiantes, por vezes fazem isto. É mau! As chavetas não são necessárias:
60
60
```js
@@ -83,11 +83,12 @@ Para código muito curto, uma única linha é aceitável, ex: `if (cond) return
83
83
Ninguém gosta de ler uma longa linha horizontal de código. A melhor prática é a particionar.
84
84
85
85
Por exemplo:
86
-
87
86
```js
88
87
// o acento grave (*backtick*) ` permite repartir uma *string* por múltiplas linhas
89
88
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.
91
92
`;
92
93
```
93
94
@@ -148,7 +149,7 @@ Existem dois tipos de indentação:
148
149
149
150
### Pontos-e-vírgula
150
151
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.
152
153
153
154
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>.
154
155
@@ -247,7 +248,6 @@ Se estiver a escrever várias funções "auxiliares" (*"helper" functions*) acom
247
248
setHandler(elem);
248
249
walkAround();
249
250
```
250
-
251
251
2. O código primeiro, depois as funções:
252
252
253
253
```js
@@ -269,7 +269,6 @@ Se estiver a escrever várias funções "auxiliares" (*"helper" functions*) acom
269
269
...
270
270
}
271
271
```
272
-
273
272
3. Mista: uma função é declarada onde for empregue pela primeira vez.
274
273
275
274
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
282
281
283
282
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.
284
283
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.
286
285
287
286
Algumas opções populares:
288
287
@@ -292,29 +291,21 @@ Algumas opções populares:
292
291
- [StandardJS](https://standardjs.com/)
293
292
- (e muitas mais)
294
293
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.
296
295
297
296
## *Linters* Automatizados
298
297
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.
300
299
301
300
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".
302
301
303
302
Aqui estão algumas das mais conhecidas ferramentas de *linting*:
304
303
305
-
<<<<<<< HEAD
306
304
- [JSLint](http://www.jslint.com/) -- um dos primeiros *linters*.
307
305
- [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.
309
307
310
308
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
318
309
319
310
Muitos *linters* estão integrados em editores populares: apenas ative a extensão (*plugin*) no editor e configure o estilo.
320
311
@@ -344,11 +335,7 @@ Aqui está um exemplo de um ficheiro `.eslintrc`:
344
335
345
336
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.
346
337
347
-
<<<<<<< HEAD
348
338
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
352
339
353
340
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*.
Copy file name to clipboardExpand all lines: 1-js/05-data-types/01-primitives-methods/article.md
+4-10Lines changed: 4 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,6 @@
1
1
# Métodos de primitivos
2
2
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).
6
4
7
5
Vejamos as principais diferenças entre primitivos e objetos.
8
6
@@ -50,13 +48,9 @@ A solução parece um pouco estranha, mas aqui está:
50
48
2. A linguagem permite acesso a métodos e propriedades de strings, números, booleanos e símbolos.
51
49
3. Quando isso acontece, um "invólucro de objeto" especial que fornece a funcionalidade extra é criado e, em seguida, é destruído.
52
50
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.
58
52
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.
60
54
61
55
Veja como isso funciona:
62
56
@@ -76,7 +70,7 @@ Portanto, os primitivos podem fornecer métodos, mas ainda permanecem leves.
76
70
77
71
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.
78
72
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:
Copy file name to clipboardExpand all lines: 1-js/06-advanced-functions/01-recursion/05-output-single-linked-list-reverse/solution.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,7 +37,7 @@ The loop variant is also a little bit more complicated than the direct output.
37
37
38
38
There is no way to get the last value in our `list`. We also can't "go back".
39
39
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:
0 commit comments