Programação Web Coding
Desenvolvimento de Ap. para
Internet
Prof. Victor Sotero
Aula 06 – Introdução ao JavaScript
Node.js
• O Node.js não é um framework (só pra deixar claro);
• Ele é um ambiente de execução de código Javascript do lado
do servidor – historicamente essa linguagem foi criada para
ser embutida no html (front-end);
• Através do Node.js é possível tornar o Javascript uma
linguagem dinâmica (antes de formatar o conteúdo para o
usuário);
Prof. Victor Sotero
Node.JS
• Possui arquitetura orientada a eventos – realiza operações
I/O assíncronas;
• O padrão orientado a eventos permite uma otimização em
relação a vazão das requisições web – request e response
Prof. Victor Sotero
Como o Node.Js foi concebido?
• Ryan Dahl, criador do Node, diz que sua inspiração veio ao
observar a barra de progresso de upload no Flickr.
• Ele havia entendido que o navegador precisava ficar
“perguntando” várias vezes ao servidor web, quanto estava
faltando para o arquivo ser transmitido – desperdício de
tempo e de recursos.
• Ele também observou a dificuldade que o Apache tinha de
lidar com conexões concorrentes.
Prof. Victor Sotero
Composição do Node.js
• Utiliza o motor Javascript V8 da
Google;
• Possui um evento loop e uma API
de I/O de baixo nível (libuv);
• Sua execução é single-thread,
diferente de outras linguagens
como PHP e Java. Isso permite
que o uso de memória e CPU seja
menor; https://www.opus-software.com.br/
Prof. Victor Sotero
Composição do Node.js
• Possui um gerenciador de pacotes NPM via comand line – isso
facilita o compartilhamento de códigos e bibliotecas Node.js;
• Gerenciador de versões - node NVM;
• Utilitário repl;
• O Node.js não é um ambiente visual ou possui ferramenta
integrada de ambiente.
Prof. Victor Sotero
Características do Node.js
• Tecnologia assíncrona que trabalha em apenas uma thread
de execução – por ser assíncrona, não bloqueia o processo
do mesmo;
• Em resumo: quando chega uma requisição (acessar o banco
de dados, por exemplo) a máquina virtual Javascript verifica
o que tem de ser feito e delega a atividade. Após isso ela
volta a atender novas requisições de forma paralela.
Prof. Victor Sotero
Empresas que usam o Node.js
• X Twitter
• Spotify
• eBay
• Reddit
• LinkedIn
Prof. Victor Sotero
Node.Js não é uma linguagem de programação
• Embora utilize o Javascript, o Node.js não é considerado
uma linguagem de programação;
• O Node também não é um framework (está mais para
plataforma de aplicação como Nginx);
• A máquina virtual V8 é a mesma que a Google utiliza no
Chrome para executar Javascript.
Prof. Victor Sotero
Potencial do
Node.Js
Configurando o Ambiente
• O download pode ser feito gratuitamente através do link
https://nodejs.org
• No link aparecerá duas opções de download (escolha a opção estável
LTS);
• A instalação não requer nenhuma força jedi(next-next-finish);
• Para verificar se a instalação aconteceu de forma correta, abra o cmd e
digite node –v ou node --version
Prof. Victor Sotero
Testando o Node.js
• Crie uma pasta em qualquer diretório e dentro dela crie um
arquivo chamado teste.js .
• Insira nesse arquivo o trecho de código:
console.log(“Olá, estou testando essa parada!”)
• Salve o arquivo, abra o cmd e acesse o diretório onde o
arquivo foi criado. Após isso digite o comando node teste.js.
• Obs.: caso seu SO tenha variável de ambiente não é preciso
acessar o diretório pelo cmd.
Prof. Victor Sotero
Principais características do Javascript
• Suporta elementos de sintaxe de programação estruturada
(while, for, if, switch);
• A quebra de linha não precisa do ponto e vírgula(;), basta
pressionar Enter;
• Tipagem dinâmica (não precisamos declarar o tipo da variável). A
linguagem identifica automaticamente o tipo;
Prof. Victor Sotero
Principais características do Javascript
• Função de primeira classe (você consegue passar uma
função como parâmetro). Ou seja, pode ser tratada como se
fosse uma variável;
• Permite criação de funções aninhadas (uma função dentro
da outra);
• Usa prototipação – ao invés de classes, utiliza protótipos
para fazer herança;
• Não há diferença entre função e método.
Prof. Victor Sotero
Variáveis
• Independente da linguagem de programação escolhida,
essas estruturas são muito importantes, pois são utilizadas
para implementar os códigos;
• Dentro das variáveis são armazenados, temporariamente ou
definitivamente, os dados que serão manipulados durante a
execução do programa.
• Ex.: nome: string
salario: float
idade: int
Constantes
• Igualmente a variável, a constante também precisa de um
espaço na memória para o tipo de dado que vai manipular.
• Porém, a constante possui um valor ÚNICO, ou seja, esse
valor não mudará com o tempo de execução.
• Ex.: nome=”Victor”
salario= 500.00
idade = 18
Declaração de Variáveis
• Podemos declarar as variáveis de quatro formas:
• Utilizar o nome da variável sem nenhuma palavra reservada que
anteceda ela;
• Utilizando a palavra reservada var;
• Utilizando a palavra reservada let;
• Utilizando a palavra reservada const.
Prof. Victor Sotero
Declaração de variáveis
• Sem utilizar palavra reservada: esse modo é o menos recomendado
pois a variável criada estará disponível globalmente;
• Os modificadores let e const servem para dar maior controle a
manipulação de variáveis;
• O const significa que aquela será uma constante por isso não
poderá sofrer mudanças;
• O let faz com que a variável existe apenas no escopo atual (ao
contrário do var que faz com que a variável fique visível para todo o
código.)
Prof. Victor Sotero
Tipagem Fraca
Prof. Victor Sotero
Exemplos
Prof. Victor Sotero
Exemplos
Prof. Victor Sotero
Exemplos
Prof. Victor Sotero
Tipos de dados
• Numbers: números com ou sem casas decimais;
• Strings: podem estar entre aspas duplas ou simples;
• Booleans: os valores representam duas possibilidades (true ou false);
• Arrays: estrutura de dados que contém diversos valores
internamente;
• Objects: tipos complexos que permitem a inserção de variáveis e
funções em seu interior;
• Functions: recebem parâmetros, executam instruções e geram saídas.
Prof. Victor Sotero
Comentários
• Comentários em uma linha:
//Isso é um comentário de uma linha
• Para delimitar uma ou mais linhas:
/* Esso é um comentário de mais de
uma linha. */
Prof. Victor Sotero
Operador relacional
Comando para imprimir no console
• Os demais operadores não diferem da maioria das outras
linguagens.
• Boa prática: use sempre === ou !== para evitar decepções.
Prof. Victor Sotero
Operadores Aritméticos
• São utilizados na construção das expressões que contém um número
variado de operandos;
• Ex.: x + y, temos o operador de adição(+) e seus operandos são x e y.
https://www.devmedia.com.br/operadores-no-python/40693
Operador de Atribuição
• Serve para atribuir valor a uma variável
https://www.devmedia.com.br/operadores-no-python/40693
Operadores Aritméticos
Prof. Victor Sotero
Operadores Lógicos
OPERADOR SIGNIFICADO EXEMPLO
&& E lógico (and) a&&b
|| Ou lógico(or) a||b
! Negação lógica - Not !(a===b)
Prof. Victor Sotero
Entrada de dados
• Por default a entrada de dados é feita através do navegador. Porém, é
possível instalar um pacote no Node.js que permite receber entrada de
dados através do comando prompt();
• Antes de tudo, via terminal e no mesmo diretório, precisamos instalar
o pacote do prompt através do comando npm install prompt-sync
Prof. Victor Sotero
Concatenando strings
Manipulando Strings
Prof. Victor Sotero
Estrutura Condicional - Controle de Fluxos
• Pemite que o programa execute diferentes partes do código
de acordo com as condições definidas;
• Estão presentes em diversas linguagens de programação;
• Em Python a declaração de uma estrutura condicional é mais
simples que outras linguagens (não é necessário o
parênteses e as chaves).
Estrutura Condicional (IF) - Sintaxe
Prf. Victor Sotero
Estrutura condicional - IF
Prof. Victor Sotero
Estrutura condicional – If Else
Prof. Victor Sotero
Estrutura Condicional –Else If
Prof. Victor Sotero
Switch
• Permite que você execute um bloco de código com base no
valor de uma expressão;
• Ela é uma alternativa mais limpa e organizada ao uso de
múltiplos if...else if para condições baseadas em valores
específicos;
Switch - Sintaxe
Exemplo simples
Estrutura de repetição - While loop
• Permite que uma sequência de comandos seja executada
repetidamente enquanto uma condição for verdadeiro;
• o While é utilizado quando não sabemos ao certo a
quantidade de vezes que vamos iterar;
• O JavaScript primeiro verifica a condição. Se for false, o loop
é encerrado e o controle passa para a próxima instrução. Se
for true, o corpo do While é executado novamente.
Estrutura de repetição - While loop
https://pythoniluminado.netlify.app/while-loops
While loop
• O loop while é uma estrutura de controle de fluxo que
permite a execução repetida de um bloco de código
enquanto uma condição especificada for verdadeira;
• Sua sintaxe:
Exemplo simples
Loop infinito
• Se a condição do while nunca se torna falsa, o loop
continuará indefinidamente, resultando em um loop infinito.
Exemplo:
• O while é interessante quando não sabemos a quantidade de
vezes que haverá iterações
Utilizando Break e continue
Utilizando break e continue
• A instrução continue é usada para pular o restante do código
no loop atual e iniciar a próxima iteração do loop. É útil para
ignorar partes específicas do código sem sair completamente
do loop.
• Continua...