SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
DESMISTIFICANDO
O JAVASCRIPT
Taís Reis
Desenvolvedora web à 5 anos
Full Stack na 2id
Evangelista PHPWomen
Apaixonada por códigos
@taisreis67
1.
O QUE É?
O QUE É JAVASCRIPT
▸ Linguagem de alto nível
▸ Interpretada ou JIT
▸ First Class Functions
▸ Multi-paradígma
2.
UM POUCO DE
HISTÓRIA
HISTÓRIA DO JAVASCRIPT
▸ Criado em 1995 por Brendan Eich
▸ Padronizado em 1996 pela ECMA
▸ ES5 lançado em 2009 que trouxe novas
funcionalidades como suporte ao JSON
▸ ES6 lançado em 2015 implementando
novos conceitos como classes
▸ Hoje em dia utilizado não só no
ambiente web, como em servidores,
mobile, desktop e IoT
3.
COMO
FUNCIONA?
PRIMITIVOS
Number
Strings
Booleanos
Null
Undefined
OS TIPOS
OBJETOS
Tudo o que não for
um tipo primitivo é
um tipo objeto.
Os básicos como +, -, *, / e %
De comparação <, >, ==, !=, ===, !===
Typeof
Ternário ?:
OPERADORES
CONVERSÕES DE TIPO
11
Podem ser declaradas com as palavras chave:
▸ Var: Declaração normal de variáveis.
▸ Let: Permite declarar variáveis em nível de
bloco.
▸ Const: Permite declarar variáveis em que seu
valor nunca mudará e em escopo de bloco.
VARIÁVEIS
▸ Léxico e de função
▸ Estruturas de controle não tem escopo
▸ Elevação ou hoisting
ESCOPO
Uma função aninhada sempre terá acesso as
variáveis declaradas em suas funções externas.
LÉXICO
LÉXICO
Uma variável declarada no escopo de uma função
não é afetada por uma variável com o mesmo
nome no escopo global ou no escopo de uma
função acima.
FUNÇÃO
FUNÇÃO
▸ If, else e else if
▸ For, for in e for of
▸ While e do while
▸ Switch
▸ Não possuem escopo
ESTRUTURAS DE CONTROLE
Um objeto em Javascript é um conjunto de
propriedades de nome e valor (quando essas
propriedades são função são chamadas de
métodos), dinâmicos e herdam do objeto
protótipo.
OBJETOS
▸ Global e Window
▸ Array
▸ Função
OBJETOS
▸ Mozilla Docs
▸ http://voidcanvas.com/is-javascript-really-int
erpreted-or-compiled-language/
▸ http://www.robsonaraujo.com.br/2015/04/jav
ascript-fundamentos-parte-2-escopo.html
▸ JavaScript: O guia definitivo
REFERÊNCIAS
THANKS!
Perguntas?
Você pode me encontrar com @taisreis67

Contenu connexe

Tendances

Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimentamichel adriano medeiros
 
Zabbix meetup RJ: Integrações e opensource
Zabbix meetup RJ: Integrações e opensourceZabbix meetup RJ: Integrações e opensource
Zabbix meetup RJ: Integrações e opensourceFilipe Paternot
 
Arquitetura em camadas em python e quanto isso pode ajudar
Arquitetura em camadas em python e quanto isso pode ajudarArquitetura em camadas em python e quanto isso pode ajudar
Arquitetura em camadas em python e quanto isso pode ajudarBetter Developer
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaMatheus Fidelis
 
Escalabilidade e Resiliência de Microservices em Python
Escalabilidade e Resiliência de Microservices em PythonEscalabilidade e Resiliência de Microservices em Python
Escalabilidade e Resiliência de Microservices em PythonGuilherme Vierno
 
Zabbix meetup RJ: Infra, tuning e documentação
Zabbix meetup RJ: Infra, tuning e documentaçãoZabbix meetup RJ: Infra, tuning e documentação
Zabbix meetup RJ: Infra, tuning e documentaçãoFilipe Paternot
 
Fazendo uma manada de elefantes passar por baixo da porta
Fazendo uma manada de elefantes passar por baixo da portaFazendo uma manada de elefantes passar por baixo da porta
Fazendo uma manada de elefantes passar por baixo da portaFabio Telles Rodriguez
 
Microservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesMicroservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesGuilherme Vierno
 
JavaFX - Uma visão Geral
JavaFX - Uma visão GeralJavaFX - Uma visão Geral
JavaFX - Uma visão GeralEder Nogueira
 
Instalando Drupal, Começando do Começo
Instalando Drupal, Começando do ComeçoInstalando Drupal, Começando do Começo
Instalando Drupal, Começando do Começosauloamui
 
Zabbix 2.0: o que ele pode monitorar na sua rede?
Zabbix 2.0: o que ele pode monitorar na sua rede?Zabbix 2.0: o que ele pode monitorar na sua rede?
Zabbix 2.0: o que ele pode monitorar na sua rede?Aécio Pires
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensPaulino Michelazzo
 
O que move a web atualmente?
O que move a web atualmente?O que move a web atualmente?
O que move a web atualmente?Fabio Janiszevski
 
Intro - Ruby e Ruby on Rails
Intro - Ruby e Ruby on RailsIntro - Ruby e Ruby on Rails
Intro - Ruby e Ruby on RailsGabriel Pereira
 
Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)Better Developer
 

Tendances (20)

Jugvale
JugvaleJugvale
Jugvale
 
Jclouds jug vale
Jclouds jug valeJclouds jug vale
Jclouds jug vale
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
 
Zabbix meetup RJ: Integrações e opensource
Zabbix meetup RJ: Integrações e opensourceZabbix meetup RJ: Integrações e opensource
Zabbix meetup RJ: Integrações e opensource
 
XPT Framework
XPT FrameworkXPT Framework
XPT Framework
 
PaaS em php
PaaS em phpPaaS em php
PaaS em php
 
Arquitetura em camadas em python e quanto isso pode ajudar
Arquitetura em camadas em python e quanto isso pode ajudarArquitetura em camadas em python e quanto isso pode ajudar
Arquitetura em camadas em python e quanto isso pode ajudar
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG Cabreúva
 
Escalabilidade e Resiliência de Microservices em Python
Escalabilidade e Resiliência de Microservices em PythonEscalabilidade e Resiliência de Microservices em Python
Escalabilidade e Resiliência de Microservices em Python
 
Zabbix meetup RJ: Infra, tuning e documentação
Zabbix meetup RJ: Infra, tuning e documentaçãoZabbix meetup RJ: Infra, tuning e documentação
Zabbix meetup RJ: Infra, tuning e documentação
 
Por que Node JS?
Por que Node JS?Por que Node JS?
Por que Node JS?
 
Fazendo uma manada de elefantes passar por baixo da porta
Fazendo uma manada de elefantes passar por baixo da portaFazendo uma manada de elefantes passar por baixo da porta
Fazendo uma manada de elefantes passar por baixo da porta
 
Microservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesMicroservices em Python: desafios e soluções
Microservices em Python: desafios e soluções
 
JavaFX - Uma visão Geral
JavaFX - Uma visão GeralJavaFX - Uma visão Geral
JavaFX - Uma visão Geral
 
Instalando Drupal, Começando do Começo
Instalando Drupal, Começando do ComeçoInstalando Drupal, Começando do Começo
Instalando Drupal, Começando do Começo
 
Zabbix 2.0: o que ele pode monitorar na sua rede?
Zabbix 2.0: o que ele pode monitorar na sua rede?Zabbix 2.0: o que ele pode monitorar na sua rede?
Zabbix 2.0: o que ele pode monitorar na sua rede?
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
 
O que move a web atualmente?
O que move a web atualmente?O que move a web atualmente?
O que move a web atualmente?
 
Intro - Ruby e Ruby on Rails
Intro - Ruby e Ruby on RailsIntro - Ruby e Ruby on Rails
Intro - Ruby e Ruby on Rails
 
Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)
 

Similaire à Desmistificando o JavaScript

Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorDickson S. Guedes
 
Apresentação java
Apresentação javaApresentação java
Apresentação javamunosai
 
Prazer,Ruby On Rails
Prazer,Ruby On RailsPrazer,Ruby On Rails
Prazer,Ruby On RailsAlberto Leal
 
Introdução Programação Funcional
Introdução Programação FuncionalIntrodução Programação Funcional
Introdução Programação FuncionalNatan Mai
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Railsismaelstahelin
 
TypeScript em Aplicações Modernas
TypeScript em Aplicações ModernasTypeScript em Aplicações Modernas
TypeScript em Aplicações ModernasNicolas Takashi
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 
Linguagens Dinamicas na JVM
Linguagens Dinamicas na JVMLinguagens Dinamicas na JVM
Linguagens Dinamicas na JVMWilliam Gouvea
 
Palestra: Introdução à TypeScript & Features Ts 2.x
Palestra: Introdução à TypeScript & Features Ts 2.x Palestra: Introdução à TypeScript & Features Ts 2.x
Palestra: Introdução à TypeScript & Features Ts 2.x Glaucia Lemos
 
Desenvolvimento Web com Software Livre
Desenvolvimento Web com Software LivreDesenvolvimento Web com Software Livre
Desenvolvimento Web com Software LivreGivanaldo Rocha
 
Apresentação Introdução Typescript - .Net Caxias do Sul
Apresentação   Introdução Typescript - .Net Caxias do SulApresentação   Introdução Typescript - .Net Caxias do Sul
Apresentação Introdução Typescript - .Net Caxias do SulGlaucia Lemos
 
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ..."Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...Cesar Augusto Nogueira
 
Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de DesenvolvimentoAlvaro Viebrantz
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsLucas Caton
 

Similaire à Desmistificando o JavaScript (20)

Linguagem Java, fundamentos da linguagem Java
Linguagem Java, fundamentos da linguagem JavaLinguagem Java, fundamentos da linguagem Java
Linguagem Java, fundamentos da linguagem Java
 
Curso javascript básico
Curso javascript básicoCurso javascript básico
Curso javascript básico
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
 
Prazer,Ruby On Rails
Prazer,Ruby On RailsPrazer,Ruby On Rails
Prazer,Ruby On Rails
 
Introdução Programação Funcional
Introdução Programação FuncionalIntrodução Programação Funcional
Introdução Programação Funcional
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Rails
 
TypeScript em Aplicações Modernas
TypeScript em Aplicações ModernasTypeScript em Aplicações Modernas
TypeScript em Aplicações Modernas
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Linguagens Dinamicas na JVM
Linguagens Dinamicas na JVMLinguagens Dinamicas na JVM
Linguagens Dinamicas na JVM
 
Palestra: Introdução à TypeScript & Features Ts 2.x
Palestra: Introdução à TypeScript & Features Ts 2.x Palestra: Introdução à TypeScript & Features Ts 2.x
Palestra: Introdução à TypeScript & Features Ts 2.x
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 
FJN 2011
FJN 2011FJN 2011
FJN 2011
 
Desenvolvimento Web com Software Livre
Desenvolvimento Web com Software LivreDesenvolvimento Web com Software Livre
Desenvolvimento Web com Software Livre
 
Apresentação Introdução Typescript - .Net Caxias do Sul
Apresentação   Introdução Typescript - .Net Caxias do SulApresentação   Introdução Typescript - .Net Caxias do Sul
Apresentação Introdução Typescript - .Net Caxias do Sul
 
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ..."Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
 
Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de Desenvolvimento
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on Rails
 

Desmistificando o JavaScript