-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtutorial.txt
416 lines (321 loc) · 11.4 KB
/
tutorial.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
=======================================================
Boas práticas na programação:
1-) Documentação
/**
* Descrição do código (o que faz?)
* @author Emmanuel L. Nogueira
* @link https://github.com/emmanuel-lacerd4
*/
2-) Código limpo
- Não abusar de comentários
3-) Nomeação:
- Não usar caracteres especiais, espaço e acentos
- Nomes de arquivos, variáveis, funções devem ser escritos com a primeira letra em caixa baixa (letra minúscula), iniciar com caixa alta (letra maiúscula) apenas classes modelos.
- definir nomes que tenham relação com o problema a ser resolvido.
4-) Alinhamento (identação do código)
5-) Quanto menos código usado para o problema melhor!
========================================================
Comandos de terminal:
cls ou clear (limpar a tela do terminal)
node -v (exibe a versão do node)
cd pasta (entrar na pasta)
cd .. (voltar um nível)
dir ou ls (listar os arquivos e diretórios)
node arquivo.js (executar um arquivo JavaScript)
seta para cima (repete os comandos)
<tab> completa o comandos
========================================================
VSCode: Dicas
Combinação de teclas <alt><shift><f> //alinhamento
Mais dicas: VS Code: Produtividade Infinita (repositório)
========================================================
JavaScript:
Características:
- Sentenças e não linhas de código
- ; é opcional
console.clear() //limpar a tela do console
console.log() //escrever no console
// comentários de linhas
Podemos usar aspas " " ou ' '
Não podemos usar aspas diferentes " ' ou ' "
Dica: Usar em textos "aspas"
Usar em bibliotecas ou caminhos 'apóstrofo'
========================================================
Operadores:
Observações:
- Regra de precedência
- % (não calcula porcentagem e sim o resto da divisão)
Ex:
| 3
10 |______
1 3
10 / 3 //3.33
10 % 3 //resultado é 1
Comparadores de igualdade:
NÃO USAR == !=
Operadores lógicos:
Dica:
professorjosedeassis.github.io/simulador
========================================================
Estudo das variáveis:
- String (caracteres)
- Numéricas (números)
- Booleanas (verdadeiro ou falso)
Obs: No JS as variáveis são dinâmicamente tipadas
const (criar uma constante)
var ou let (criar uma variável)
ATENÇÃO!!! Não usar jamais o var
Tipagem dinâmica:
No JavaScript o tipo string é definido quando o conteúdo da variável estiver entre aspas ""
Variáveis numéricas podem ser números inteiros e não inteiros
Observação , (vírgula é um caractere e não número)
se necessário converter a entrada de dados de "," para "."
.replace(",",".")
Na entrada de dados numéricos via terminal ou formulário é necessário converter para números
classe Number
========================================================
Git e GitHub
Material de apoio:
https://www.youtube.com/playlist?list=PLbEOwbQR9lqzK14I7OOeREEIE4k6rjgIj
Configurando o git
- Instalar o git
Abrir o git bash
git config --global user.name "seu nome"
git config --global user.email "seu email github"
git clone link_do_repositório (clonar o repositório na máquina local)
Observação: digitar os comandos na raiz do repositório
git status (verifica o status do repositório local em relação ao GitHub)
git add . (adiciona todas as alterações)
git commit -m "descrição das alterações"
========================================================
NODE - Plataforma para uso do JS fora do browser(navegador)
|__ V8 (google chromium)
|__ bibliotecas C / C++
|__ pacotes npm (node packager manager)
npm ls (lista os pacotes)
npm i ou npm install (instala um pacote)
npm r nome_do_pacote (remove o pacote)
Pacote = Módulo = biblioteca
Para usar um pacote é necessário fazer a importação no início do código (logo abaixo do cabeçalho de documentação)
========================================================
Algorítmo: "receita de bolo"
Exemplo 1:
Objetivo: Calcular a média de 2 notas
nota 1 + nota 2
média = _________________
2
Variáveis: nota1,nota2,media
Entrada: nota1,nota2
Processamento: media = (nota1 + nota2) / 2
Saída: media
========================================================
Exemplo 2:
Desenvolver um app modo console para cálculo de porcentagem:
Ex: 10% de 200 = 20
x y valor
Algorítmo:
y ------------ 100%
valor ---------- x
valor * 100 = y * x
y * x
valor = ___________
100
valor = (x * y) / 100
//variáveis
x,y,valor
//entrada
x,y
//Processamento
valor = (x * y) / 100
//Saída
valor
Exercício 1:
Desenvolver um app modo console para calcular o valor do desconto:
Ex:
valor total: 200.00
desconto: 5%
total com desconto: 190.00
valor com desconto = valor total - desconto
// variáveis
total, desconto, valor, totalDesconto
//entrada
total, desconto
//processamento 1
valor = (desconto * total) / 100
//saída 1
valor
//processamento 2
totalDesconto = total - valor
//saída 2
totalDesconto
Exercício 2: Desenvolver um app no console para conversão de moeda (real para euro)
cotação da moeda: 5.89
Para converter de real para euro, dividir o valor em reais pela cotação do euro
//variáveis
real, euro, total
//entrada
real, euro
//processamento
total = real / euro
//saída
total
========================================================
Estruturas de controle
condicionais:
if if-else (encadeamento/aninhamento else if) switch-case
repetições:
for while do-while
if (condição) {
//condição verdadeira
}
if (condição) {
//condição verdadeira
} else {
//condição falsa
}
Observações:
1-) Sempre uma resposta será exibida independente da condição
2-) Não pode existir uma condição verdeira e falsa ao memso tempo
Exemplo de uso da estrutura else if
No exemplo cálculo da média, estabelecer as seguintes condições:
1-) Se o aluno tiver média menor que 2 (REPROVADO)
2-) Se a média do aluno estiver entre 2 e 5 (RECUPERAÇÃO)
3-) Se a média for igual ou superior a 5 (APROVADO)
Resumindo:
if(condição 1) {
//condição 1 verdadeira
} else if(condição 2) {
//condição 2 verdadeira
} else if(condição 3) {
//condição 3 verdadeira
} else {
//nenhuma das condições anteriores verdadeiras
}
Obs: O else final não é obrigatório
Exercício 3:
No Brasil, o voto pode ser proibido, obrigatório ou facultativo, de acordo com os seguintes critérios:
idade menor que 16 (proibido votar)
idade entre 18 e 70 (incluindo 18 e 70) (voto obrigatório)
16,17 ou acima de 70 (voto é opcional)
Desenvolva no console do JS um APP para verificar em função da idade a obrigação ou não de votar. Testar com os valores 15(proibido),16,17(facultativo),18,70(obrigatório) e 71(facultativo)
========================================================
Estrutura de controle condicional: switch-case
Sintaxe:
variável (número inteiro ou letra)
switch(variável) {
case: 1
//código se o valor da variável for igual a 1
break
case: 2
//código se o valor da variável for igual a 2
break
default:
//código caso valor diferente de 1 ou 2
break
}
========================================================Exercício 4: Desenvolva no console do JS um aplicativo
que faça o sorteio de um jogo de dado, ao resultado associar usando switch case a imagem da face do dado correspondente
Exemplo:
------
| o o |
| o o |
------
Atividade 2 - Avaliação em dupla - desenvolvimento do jogo JokenPow, conforme modelo abaixo:
__ _____ _____ _____ _____ _____ _____ _ _ _
__| | | | | __| | | _ | | | | |
| | | | | -| __| | | | __| | | | | |
|_____|_____|__|__|_____|_|___|__| |_____|_____|
1. Pedra
2. Papel
3. Tesoura
Digite a opcao desejada: 1
========================================================
Jogador escolheu Pedra
Computador escolheu Tesoura
JOGADOR VENCEU
========================================================
Estruturas de controle - laços de repetições
for
while
do-while
for - estrutura de repetição finita(determinada)
for (let i=1; condição; incremento/decremento) {
//início; repetir enquanto condição verdadeira; i++ ou i--
}
//obs: a variável declarada dentro da estrutura deve ser um número inteiro
Exercício 5:
5.1 Escreva um código que some todos os números de 1 a 100 e exiba o resultado no console.
5.2 Escreva um código que use um laço for para contar quantos números pares existem de 1 a 20.
while do-while - estruturas de repetições infinitas
while (condição) {
// analisa a condição e executa o código enquanto a condição for verdadeira
}
do {
// sempre executa o código uma vez independente da condição, depois se comporta como while
} while(condição)
Exercício 6:
Desenvolver um aplicativo para calcular a tabuada, semelhante ao exemplo de aula usando a estrutura while no lugar do for
========================================================
Funções:
Uma função é um bloco de código que realiza uma tarefa específica ou calcula um valor. Você pode pensar nela como uma "receita" que você escreve uma vez e pode usar várias vezes, sem precisar reescrever o código.
Nomeie funções de acordo com o problema a ser resolvido
Use "verbos" para nomear funções. Ex: calcular() cadastrar()
Para criar uma função simples(literal) usamos a palavra reservada function, e escolhemos um nome, conforme sintaxe abaixo:
function nome() {
//código
}
Para executar uma função devemos escrever o nome da função seguido de parêntese:
nome()
// variáveis
Tipos primitivos: string, number, boolean
Outros tipos: function, object
// Funções em JavaScript
- literais (nome)
- atribuídas (variável) "Função anônima"
São funções atribuídas a uma constante ou variável onde o resultado do processamento da função é armazenado e pode ser utilizado, além disso funções atribídas podem ser simplificadas
(arrow function)
Atividade 3 (Avaliação em dupla)
Desenvolver uma calculadora no console usando funções, conforme modelo abaixo:
Calculadora:
Digite o primeiro número: 10
Digite o segundo número: 5
Opções:
1. Somar
2. Subtrair
3. Multiplicar
4. Dividir
5. Calcular a porcentagem
Digite a opcao desejada: 1
10 + 5 = 15
========================================================
POO
- Abstração (classe modelo)
- Herança
- Polimorfismo
- Encapsulamento (segurança)
Slides de apoio: (49 a 60)
https://professorjosedeassis.github.io/javaSE/#/49
Obs: Para criar uma classe modelo usamos uma letra maiúscula no ínicio
No JS a classe modelo é uma função
Sempre que existir a palavra new um objeto é criado(instanciado)
O ponto após o objeto é usado para acessar os recursos (atributos e métodos) da classe modelo
Polimorfismo:
Atencão! Para reescrever um método é necessário usar o "MESMO" nome do método original
Atividade 4: Avaliação individual
SLides 16 a 20 (POO Exercício 1 - carros)
Encapsulamento:
- Reforço na segurança dos atributos(variáveis)
Dica: get e set (acesso a variável encapsulada)
========================================================
Array (vetor)
Na linguagem JavaScript array é um objeto
Array multidimensional (matriz)
É um array que contém outro(s) array(s)
========================================================
Assincronismo
A linguagem JavaScript é single thread ou seja, é necessário esperar a finalização de um processamento para iniciar outro.
1-) Funções callback (obsoleto)
2-) Promises (Promessa)
.then (retorno positivo)
.catch(error) (retorno falhou)
3-) async await