Skip to content

Commit af4e20f

Browse files
authored
Merge branch 'master' into master
2 parents e654190 + 9d3c4f5 commit af4e20f

File tree

1,180 files changed

+27828
-31284
lines changed

Some content is hidden

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

1,180 files changed

+27828
-31284
lines changed

.gitattributes

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

.github/FUNDING.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
github: iliakan

.gitignore

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

2323

24+
/svgs
25+
# VSCode workspace
26+
.vscode/

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

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,23 @@ Os scripts são fornecidos e executados como texto puro. Eles não precisam de p
1212

1313
Neste aspecto, o JavaScript é muito diferente de outra linguagem chamada [Java](https://pt.wikipedia.org/wiki/Java_(linguagem_de_programação)).
1414

15-
```smart header="Por que <u>Java</u>Script?"
16-
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.
15+
```smart header="Por que é chamado <u>Java</u>Script?"
16+
Quando o JavaScript foi criado, 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.
1717
18-
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.
18+
Mas à medida que ele evoluiu, o JavaScript se tornou uma linguagem totalmente independente e com a sua própria especificação chamada [ECMAScript](https://pt.wikipedia.org/wiki/ECMAScript), e agora ele não tem nenhuma relação com Java.
1919
```
2020

21-
Hoje, o JavaScript pode ser executado não só no navegador, mas também no servidor, ou mesmo em qualquer dispositivo que tenha um programa especial chamado [Interpretador JavaScript] (https://pt.wikipedia.org/wiki/Interpretador_de_JavaScript).
21+
Hoje, o JavaScript pode ser executado não só no navegador, como também no servidor, ou mesmo em qualquer dispositivo que tenha um programa especial chamado [Interpretador JavaScript](https://pt.wikipedia.org/wiki/Interpretador_de_JavaScript).
2222

23-
O navegador tem um interpretador(motor) incorporado, às vezes chamado de "máquina virtual JavaScript".
23+
O navegador tem um interpretador (motor) incorporado que às vezes é chamado de "máquina virtual JavaScript".
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://pt.wikipedia.org/wiki/V8_(JavaScript)) -- no Chrome, Opera e Edge.
2828
- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- no Firefox.
29-
- ...Há outros codinomes como "Trident" e "Chakra" para diferentes versões do IE, "ChakraCore" para Microsoft Edge, "Nitro" e "SquirrelFish" para Safari, etc.
29+
- ... 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. Nós também os vamos usar. Por exemplo, se "um recurso X é suportado pelo V8", então ele provavelmente funciona no Chrome, Opera e Edge.
3232

3333
```smart header="Como funcionam os interpretadores?"
3434
@@ -38,46 +38,48 @@ Os interpretadores são complicados. Mas o básico é fácil.
3838
2. Depois converte ("compila") o script para a linguagem da máquina.
3939
3. E então o código da máquina é executado, bem rápido.
4040
41-
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.
41+
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.
4242
```
4343

4444
## O que o JavaScript no navegador pode fazer?
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

5252
Por exemplo, o JavaScript no navegador é capaz de:
5353

5454
- Adicionar novo HTML à página, alterar o conteúdo existente, modificar estilos.
55-
- Reagir às ações do usuário, executar em cliques de mouse, movimentos de ponteiro, pressionamentos de teclas.
56-
- Enviar solicitações através da rede para servidores remotos, baixar e carregar arquivos (as chamadas tecnologias [AJAX](https://en.wikipedia.org/wiki/Ajax_(programming)) e [COMET](https://en.wikipedia.org/wiki/Comet_(programming))).
55+
- Reagir às ações do usuário, executando código seguindo cliques de mouse, movimentos de ponteiro, pressionamentos de teclas.
56+
- Enviar solicitações através da rede para servidores remotos, baixar e carregar arquivos (as chamadas tecnologias [AJAX] (https://pt.wikipedia.org/wiki/Ajax_(programa%C3%A7%C3%A3o)) e [COMET] (https://pt.wikipedia.org/wiki/Comet_(programa%C3%A7%C3%A3o))).
5757
- Obter e definir cookies, fazer perguntas ao visitante, mostrar mensagens.
58-
- Lembre-se dos dados no lado do cliente ("local storage").
58+
- Lembrar-se dos dados no lado do cliente ("local storage").
5959

6060
## O que o JavaScript no navegador não pode fazer?
6161

62-
As habilidades do JavaScript no navegador são limitadas por uma questão de segurança do usuário. O objetivo é evitar que uma página maléfica acesse informações privadas ou prejudique os dados do usuário.
62+
As habilidades do JavaScript no navegador são limitadas por uma questão de segurança do usuário. O objetivo é evitar que uma página maléfica acesse informações privadas ou danifique os dados do usuário.
6363

6464
Exemplos de tais restrições incluem:
6565

66-
- 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.
66+
- O JavaScript em uma página não pode ler/gravar/copiar arquivos arbitrários ou executar programas, se estes estiverem no disco rígido. Não tem acesso direto às funções do sistema operacional.
6767

68-
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>`.
68+
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 entrada de formulário.
69+
70+
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).
6971

70-
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).
7172
- 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).
7273

73-
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.
74+
Isto é chamado de "Política de mesma origem". Para contornar isso, *ambas as páginas* devem concordar em trocar dados e conter código JavaScript específico para o fazer.
7475

7576
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á.
77+
7678
- 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.
7779

7880
![](limitations.svg)
7981

80-
Esses limites não existem se o JavaScript for usado fora do navegador, por exemplo, em um servidor. Os navegadores modernos também permitem plugins / extensões que podem solicitar permissões estendidas.
82+
Esses limites não existem se o JavaScript for usado fora do navegador, por exemplo, em um servidor. Os navegadores modernos também permitem plugins/extensões que podem solicitar permissões estendidas.
8183

8284
## O que torna o JavaScript único?
8385

@@ -86,32 +88,35 @@ Há pelo menos *três* grandes aspectos do JavaScript:
8688
```compare
8789
+ Integração total com HTML/CSS.
8890
+ Coisas simples são feitas de forma simples.
89-
+ Suporte para todos os principais navegadores e ativado por padrão.
91+
+ Suporte em todos os principais navegadores, e ativado por padrão.
9092
```
93+
9194
JavaScript é a única tecnologia de navegador que combina estas três qualidades.
9295

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

95-
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.
96-
98+
Dito isso, o JavaScript pode ser usado para criar servidores, aplicativos móveis, etc.
9799

98100
## Linguagens "sobre" JavaScript
99101

100102
A sintaxe do JavaScript não se adapta às necessidades de todos. Pessoas diferentes querem características diferentes.
101103

102-
Isso é de se esperar, porque os projetos e requisitos são diferentes para todos.
104+
Isso é de se esperar, porque projetos e requisitos são diferentes para todos.
103105

104106
Então, recentemente uma infinidade de novas linguagens apareceu, que são *transpiladas* (convertidas) para JavaScript antes de rodarem no navegador.
105107

106-
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ô".
108+
Ferramentas modernas tornam a transpilação muito rápida e transparente, permitindo que os desenvolvedores codifiquem em outra linguagem e auto-convertendo "nos bastidores".
107109

108110
Exemplos de tais linguagens:
109111

110112
- [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-
- [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.
112-
- [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.
113+
- [TypeScript](http://www.typescriptlang.org/) está concentrado em adicionar "estritos tipos de dados" para simplificar o desenvolvimento e suporte de sistemas complexos. É desenvolvido pela Microsoft.
114+
- [Flow](http://flow.org/) também adiciona tipos de dados, mas de uma forma diferente. Desenvolvido pela Facebook.
115+
- [Dart](https://www.dartlang.org/) é uma linguagem autônoma que tem seu próprio interpretador que roda em ambientes fora do navegador (como aplicativos móveis), mas também pode ser transpilada para JavaScript. Desenvolvida pela Google.
116+
- [Brython](https://brython.info/) é um transpilador de Python para JavaScript que permite escrever aplicativos em puro Python, sem JavaScript.
117+
- [Kotlin](https://kotlinlang.org/docs/js-overview.html) é uma linguagem de programação moderna, concisa e segura, que pode ser usada no navegador ou no Node.
113118

114-
Há mais. Claro que, mesmo que usemos uma dessas linguagens, também devemos saber JavaScript para entender o que estamos fazendo.
119+
Há mais. Claro que, mesmo que usemos uma dessas linguagens transpiladas, também devemos saber JavaScript para entender o que estamos fazendo.
115120

116121
## Resumo
117122

0 commit comments

Comments
 (0)