SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
Carlos Roberto Gomes Junior
http://carlosroberto.name
http://github.com/carlosrberto
JavaScript
Básico
O Que é ?
É uma linguagem de programação
interpretada utilizada inicialmente
apenas no lado cliente de uma aplicação web
Origem
Surgiu em 1995, desenvolvida por Brendan Eich
enquanto trabalhava na antiga Netscape, inicialmente
tinha o nome de Mocha, depois LiveScript e
finalmente JavaScript.
Inicialmente não havia um padrão na linguagem,
cada browser possuia uma implementação
com algumas diferenças.
JScript
A Microsoft para competir com a Netscape
criou o JScript.
As duas linguagens eram bem semelhantes
mas com implementações um pouco diferêntes.
Esses problemas são “sentidos” até hoje.
Em 1996 a Netscape envia o JavaScript para Ecma
como forma de sugerir um padrão
de implementação da linguagem.
Assim surge o ECMAScript que é uma
padronização que os desenvolvedores
devem seguir ao implementar a linguagem.
Padronização
“JavaScript” !== “Java”
A mudança de nome de LiveScript para JavaScript
ocurreu quando a Netscape implementou o Java
pela primeira vez em seu navegador.
Muitos acreditam que a semelhança de nomes
foi proposital de forma a aproveitar a fama
da ainda jovem Java.
JavaScript
no browser e além!
Por muito tempo o JavaScript ficou conhecido apenas
como a linguagem client-side da Web
No início faziamos apenas validações de formulário
e abriamos popups.
HTML 5
• Canvas
• Canvas 3D
• Websockets
• Workers
• Audio
• Video
• User Media
• History
• Gamepad
• Device Orientation
• Geolocation
• Application Cache
• Web SQL
• etc.............
HTML5 JavaScript APIs
Rhino
NodeJS
Titanium SDK
Tide SDK
Firefox OS
Inserindo em um
documento
<script>
var myVar = "value";
</script>
<script src="file.js"></script>
Comentários
Crie o costume de comentar seu código.
Isso lhe ajuda a manter o código organizado,
facilita a manutenção e evita que outros
programadores falem mal da sua mãe.
// Comentários em uma linha
/*
Comentários com multiplas linhas
*/
Variáveis
Devem começar apenas com letras de a-z,A-Z, _, $
Variáveis utilizam um espaço na memória
para guardar informações.
var idade = 27;
var name = "carlos";
var _city = "ribeirão";
var _address_2 = "street name";
var $ = "dolar";
Tipos deVariáveis
// String
var car = “Porsche”
// Number
var weight = 2000;
// Function
var sum = function(a, b) {
return a+b;
};
// Object
var triangle = {
sideA: 60,
sideB: 30,
sideC: 90
};
// Array
var vocals = [‘a’,‘e’,‘i’,‘o’,‘u’];
Operadores
Matemáticos
=, +=, -=, +, -, ++, --,
/, /=, *, *=, %
• 2 + 3; // => 3
• 2 - 2; // => 0
• a = 2;
• a++ // soma 1;
• a -- // subtrai 1;
• c = 4;
• c += 2 // c = c + 2
• c -= 2 // c = c + 2
• 10/2; // => 5
• 3*9; // => 27
• 7%3; // => 1
Operadores Lógicos
Os operadores lógicos são a base das linguágens
de programação sem eles nada seria posssível.
São eles que determinam o comportamento
de um programa, mudam suas ações.
Veremos que tudo se resume
em “verdadeiro” e “falso”, 0 e 1.
true / false
true // true
false // false
"peixe" // true
"" // false
"0" // true
0 // false
1 // true
2 // true
null // false
undefined // false
==, ===, !=, !==, >, >=,
<, <=, !, !!, &&, ||
==
2 == 2 // true
"agua" == "água" // false
"1kg de algodão" == "1kg de ferro" // false
!=
3 != 3 // false
"lua" != "sol" // true
>, >=, <, <=
20 > 1 // true
3 > 6 // false
7 >= 2 // true
10 < 5 // false
12 <= 12 // true
== vs ===, != vs !==
2 == "2" // true
2 === "2" // false
0 == false // true
0 === false // false
7 !== "7" // true
&& (AND)
true && true // true
true && false // false
false && false // false
false && true && true // false
3 < 5 && 7 > 2 // true
"div" != "span" && 7 >= 6 // true
|| (OR)
7 || 4 // 7 (true)
false || 2 // 2 (true)
"maça" == "laranja" || 2 == 2 // true
! (not)
!3 // false
!("a" != "a") // true
2 == 2 && !(2 < 2) // true
!!
Converte o valor para true/false
!!"banana" // true
!!"0" // true
!!"" // false
!!null // false
Estruturas de Controle
• if, else if, else
• for
• switch
• while
• operador ternário (condição ? a : b)
if, else if, else
Testa uma condição e executa um comando
caso verdadeiro e/ou falso
var isiPad = navigator.userAgent.match(/iPad/);
var isChrome = navigator.userAgent.match(/Chrome/);
if( isiPad ) {
// faz algo se for ipad
} else if ( isChrome ) {
// faz algo se for chrome
} else {
// faz algo caso não seja iPad nem Chrome
}
for
Executa uma instrução até que
a condição não seja mais satisfeita
var frutas = ["laranja", "goiaba", "açaí"];
var totalFrutas = frutas.length;
var frase;
for (var i = 0; i < totalFrutas i++) {
frase = frutas[i] + " é o item " + i + " da lista";
console.log( frase );
}
// laranja é o item 0 da lista
// goiaba é o item 1 da lista
// açaí é o item 2 da lista
for in
Percorre as propriedades de um objeto
var carro = {
ano: 2012,
marca: "volkswagen",
cavalos: 110
}
for ( propriedade in carro ) {
console.log( propriedade );
}
// ano
// marca
// cavalos
for ( propriedade in carro ) {
console.log( propriedade + " : " + carro[propriedade] );
}
// ano : 2012
// marca : "volkswagen"
// cavalos : 110
switch
Executa uma instrução de acordo com valor passado
var dia = new Date().getDay(); // numero do dia da semana 0-6
var diaDaSemana;
switch ( dia ) {
case 0:
diaDaSemana = "Domingo";
break;
case 1:
diaDaSemana = "Segunda";
break;
case 2:
diaDaSemana = "Terça";
break;
case 3:
diaDaSemana = "Quarta";
break;
case 4:
diaDaSemana = "Quinta";
break;
case 5:
diaDaSemana = "Sexta";
break;
case 6:
diaDaSemana = "Sábado";
break;
default:
diaDaSemana = "Desconhecido";
break;
}
console.log( diaDaSemana );
while
var valor = 0;
var incremento = 0.5;
var maximo = 100;
while ( valor < maximo ) {
valor = valor + incremento;
}
console.log( valor );
// 100
Operador ternário
condicao ? “valor se verdadeiro” : “valor se falso”
var data = new Date();
var hora = date.getHours();
var periodo = hora < 18 ? "dia" : "noite";
var frase = "Por enquanto ainda é " + periodo;
Livros Recomendados

Mais conteúdo relacionado

Mais procurados

Aula 1 linguagem html (1)
Aula 1   linguagem html (1)Aula 1   linguagem html (1)
Aula 1 linguagem html (1)Kaoru Hatake
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 
Apresentação HTML e CSS
Apresentação HTML e CSSApresentação HTML e CSS
Apresentação HTML e CSSledsifes
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasRodrigo Branas
 
Estrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaEstrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaLeinylson Fontinele
 
React JS - Parte 1
React JS - Parte 1React JS - Parte 1
React JS - Parte 1Bruno Catão
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Bruno Grange
 
Curso de css3 unidade 1 - introdução ao css
Curso de css3   unidade 1 - introdução ao cssCurso de css3   unidade 1 - introdução ao css
Curso de css3 unidade 1 - introdução ao cssLéo Dias
 
A linguagem de programação c
A linguagem de programação cA linguagem de programação c
A linguagem de programação cClausia Antoneli
 

Mais procurados (20)

Curso javascript básico
Curso javascript básicoCurso javascript básico
Curso javascript básico
 
Aula 1 linguagem html (1)
Aula 1   linguagem html (1)Aula 1   linguagem html (1)
Aula 1 linguagem html (1)
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Apresentação HTML e CSS
Apresentação HTML e CSSApresentação HTML e CSS
Apresentação HTML e CSS
 
Html Básico
Html BásicoHtml Básico
Html Básico
 
Aula02 - JavaScript
Aula02 - JavaScriptAula02 - JavaScript
Aula02 - JavaScript
 
Aula 07 Css - Parte 1
Aula 07   Css - Parte 1Aula 07   Css - Parte 1
Aula 07 Css - Parte 1
 
Introdução a React Native
Introdução a React NativeIntrodução a React Native
Introdução a React Native
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
 
Aula01-JavaScript
Aula01-JavaScriptAula01-JavaScript
Aula01-JavaScript
 
Introdução ao CSS
Introdução ao CSSIntrodução ao CSS
Introdução ao CSS
 
Estrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaEstrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na prática
 
React JS - Parte 1
React JS - Parte 1React JS - Parte 1
React JS - Parte 1
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 
Programação Web com HTML e CSS
Programação Web com HTML e CSSProgramação Web com HTML e CSS
Programação Web com HTML e CSS
 
Curso de css3 unidade 1 - introdução ao css
Curso de css3   unidade 1 - introdução ao cssCurso de css3   unidade 1 - introdução ao css
Curso de css3 unidade 1 - introdução ao css
 
A linguagem de programação c
A linguagem de programação cA linguagem de programação c
A linguagem de programação c
 

Destaque

WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011Leonardo Balter
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)Zeno Rocha
 
How to create high scalable JavaScript apps for Java Portals
How to create high scalable JavaScript apps for Java PortalsHow to create high scalable JavaScript apps for Java Portals
How to create high scalable JavaScript apps for Java PortalsZeno Rocha
 
Desbravando o HTML5 Boilerplate
Desbravando o HTML5 BoilerplateDesbravando o HTML5 Boilerplate
Desbravando o HTML5 BoilerplateZeno Rocha
 
Super Trunfo - Case de Dados Abertos
Super Trunfo - Case de Dados AbertosSuper Trunfo - Case de Dados Abertos
Super Trunfo - Case de Dados AbertosZeno Rocha
 
Javascript Orientado a Objetos - Fisl12
Javascript Orientado a Objetos - Fisl12Javascript Orientado a Objetos - Fisl12
Javascript Orientado a Objetos - Fisl12Emerson Macedo
 
Construindo Projetos Robustos em HTML5
Construindo Projetos Robustos em HTML5Construindo Projetos Robustos em HTML5
Construindo Projetos Robustos em HTML5Zeno Rocha
 
Augmented Reality in JavaScript
Augmented Reality in JavaScriptAugmented Reality in JavaScript
Augmented Reality in JavaScriptZeno Rocha
 
Os mitos do desenvolvimento front-end
Os mitos do desenvolvimento front-endOs mitos do desenvolvimento front-end
Os mitos do desenvolvimento front-endZeno Rocha
 
JavaScript for Beginners
JavaScript for BeginnersJavaScript for Beginners
JavaScript for BeginnersSAPO Sessions
 

Destaque (20)

Redes linux excerto
Redes linux excertoRedes linux excerto
Redes linux excerto
 
WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)
 
How to create high scalable JavaScript apps for Java Portals
How to create high scalable JavaScript apps for Java PortalsHow to create high scalable JavaScript apps for Java Portals
How to create high scalable JavaScript apps for Java Portals
 
HTML 5
HTML 5HTML 5
HTML 5
 
Desbravando o HTML5 Boilerplate
Desbravando o HTML5 BoilerplateDesbravando o HTML5 Boilerplate
Desbravando o HTML5 Boilerplate
 
Wordpress
WordpressWordpress
Wordpress
 
Super Trunfo - Case de Dados Abertos
Super Trunfo - Case de Dados AbertosSuper Trunfo - Case de Dados Abertos
Super Trunfo - Case de Dados Abertos
 
Javascript Orientado a Objetos - Fisl12
Javascript Orientado a Objetos - Fisl12Javascript Orientado a Objetos - Fisl12
Javascript Orientado a Objetos - Fisl12
 
Construindo Projetos Robustos em HTML5
Construindo Projetos Robustos em HTML5Construindo Projetos Robustos em HTML5
Construindo Projetos Robustos em HTML5
 
Augmented Reality in JavaScript
Augmented Reality in JavaScriptAugmented Reality in JavaScript
Augmented Reality in JavaScript
 
It's Javascript Time
It's Javascript TimeIt's Javascript Time
It's Javascript Time
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
426 curso html
426 curso html426 curso html
426 curso html
 
Javascript para adultos
Javascript para adultosJavascript para adultos
Javascript para adultos
 
Os mitos do desenvolvimento front-end
Os mitos do desenvolvimento front-endOs mitos do desenvolvimento front-end
Os mitos do desenvolvimento front-end
 
Personal Kanban
Personal KanbanPersonal Kanban
Personal Kanban
 
Desenvolvimento web I - Introdução
Desenvolvimento web I - IntroduçãoDesenvolvimento web I - Introdução
Desenvolvimento web I - Introdução
 
JavaScript for Beginners
JavaScript for BeginnersJavaScript for Beginners
JavaScript for Beginners
 
Javascript nos dias de hoje
Javascript nos dias de hojeJavascript nos dias de hoje
Javascript nos dias de hoje
 

Semelhante a JavaScript Básico - Guia Completo

Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryHarlley Oliveira
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersHarlley Oliveira
 
Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsJulio Betta
 
Html5 storage api
Html5 storage apiHtml5 storage api
Html5 storage apiSuissa
 
Introdução ao framework CakePHP
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHPigorpimentel
 
Combinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaCombinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaMilfont Consulting
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Willian Magalhães
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoCezinha Anjos
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScriptClaudio Gamboa
 
Evento Front End SP - Organizando o Javascript
 Evento Front End SP - Organizando o Javascript Evento Front End SP - Organizando o Javascript
Evento Front End SP - Organizando o JavascriptMichel Ribeiro
 
Lib.SAPO.JS - Codebits2007
Lib.SAPO.JS  - Codebits2007Lib.SAPO.JS  - Codebits2007
Lib.SAPO.JS - Codebits2007Claudio Gamboa
 
JavaScript - Aula Introdutória
JavaScript - Aula IntrodutóriaJavaScript - Aula Introdutória
JavaScript - Aula Introdutórialucasleite
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidademetzen
 
Developer day 2010 - javascript
Developer day   2010 - javascriptDeveloper day   2010 - javascript
Developer day 2010 - javascriptMarcos Ferreira
 
Da argila ao forte: como desenvolver uma loja com PagSeguro
Da argila ao forte: como desenvolver uma loja com PagSeguroDa argila ao forte: como desenvolver uma loja com PagSeguro
Da argila ao forte: como desenvolver uma loja com PagSeguroMichael Castillo Granados
 
(Portuguese) Java EE Poliglota
(Portuguese) Java EE Poliglota(Portuguese) Java EE Poliglota
(Portuguese) Java EE PoliglotaPhil Calçado
 

Semelhante a JavaScript Básico - Guia Completo (20)

Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQuery
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para Webdesigners
 
Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on Rails
 
Html5 storage api
Html5 storage apiHtml5 storage api
Html5 storage api
 
Java script aula 02 - operadores
Java script   aula 02 - operadoresJava script   aula 02 - operadores
Java script aula 02 - operadores
 
Introdução ao framework CakePHP
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHP
 
Php 07 Cakephp
Php 07 CakephpPhp 07 Cakephp
Php 07 Cakephp
 
Combinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaCombinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma prática
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direito
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScript
 
Evento Front End SP - Organizando o Javascript
 Evento Front End SP - Organizando o Javascript Evento Front End SP - Organizando o Javascript
Evento Front End SP - Organizando o Javascript
 
Lib.SAPO.JS - Codebits2007
Lib.SAPO.JS  - Codebits2007Lib.SAPO.JS  - Codebits2007
Lib.SAPO.JS - Codebits2007
 
Curso de Introdução - PHP
Curso de Introdução - PHPCurso de Introdução - PHP
Curso de Introdução - PHP
 
JavaScript - Aula Introdutória
JavaScript - Aula IntrodutóriaJavaScript - Aula Introdutória
JavaScript - Aula Introdutória
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidade
 
Realtime com node.js e socket.io
Realtime com node.js e socket.ioRealtime com node.js e socket.io
Realtime com node.js e socket.io
 
Developer day 2010 - javascript
Developer day   2010 - javascriptDeveloper day   2010 - javascript
Developer day 2010 - javascript
 
Da argila ao forte: como desenvolver uma loja com PagSeguro
Da argila ao forte: como desenvolver uma loja com PagSeguroDa argila ao forte: como desenvolver uma loja com PagSeguro
Da argila ao forte: como desenvolver uma loja com PagSeguro
 
(Portuguese) Java EE Poliglota
(Portuguese) Java EE Poliglota(Portuguese) Java EE Poliglota
(Portuguese) Java EE Poliglota
 

JavaScript Básico - Guia Completo

  • 1. Carlos Roberto Gomes Junior http://carlosroberto.name http://github.com/carlosrberto
  • 3. O Que é ? É uma linguagem de programação interpretada utilizada inicialmente apenas no lado cliente de uma aplicação web
  • 4. Origem Surgiu em 1995, desenvolvida por Brendan Eich enquanto trabalhava na antiga Netscape, inicialmente tinha o nome de Mocha, depois LiveScript e finalmente JavaScript.
  • 5. Inicialmente não havia um padrão na linguagem, cada browser possuia uma implementação com algumas diferenças.
  • 6. JScript A Microsoft para competir com a Netscape criou o JScript. As duas linguagens eram bem semelhantes mas com implementações um pouco diferêntes. Esses problemas são “sentidos” até hoje.
  • 7. Em 1996 a Netscape envia o JavaScript para Ecma como forma de sugerir um padrão de implementação da linguagem. Assim surge o ECMAScript que é uma padronização que os desenvolvedores devem seguir ao implementar a linguagem. Padronização
  • 8. “JavaScript” !== “Java” A mudança de nome de LiveScript para JavaScript ocurreu quando a Netscape implementou o Java pela primeira vez em seu navegador. Muitos acreditam que a semelhança de nomes foi proposital de forma a aproveitar a fama da ainda jovem Java.
  • 9. JavaScript no browser e além! Por muito tempo o JavaScript ficou conhecido apenas como a linguagem client-side da Web
  • 10. No início faziamos apenas validações de formulário e abriamos popups.
  • 12. • Canvas • Canvas 3D • Websockets • Workers • Audio • Video • User Media • History • Gamepad • Device Orientation • Geolocation • Application Cache • Web SQL • etc............. HTML5 JavaScript APIs
  • 13. Rhino
  • 18. Inserindo em um documento <script> var myVar = "value"; </script> <script src="file.js"></script>
  • 19. Comentários Crie o costume de comentar seu código. Isso lhe ajuda a manter o código organizado, facilita a manutenção e evita que outros programadores falem mal da sua mãe. // Comentários em uma linha /* Comentários com multiplas linhas */
  • 20. Variáveis Devem começar apenas com letras de a-z,A-Z, _, $ Variáveis utilizam um espaço na memória para guardar informações. var idade = 27; var name = "carlos"; var _city = "ribeirão"; var _address_2 = "street name"; var $ = "dolar";
  • 21. Tipos deVariáveis // String var car = “Porsche” // Number var weight = 2000; // Function var sum = function(a, b) { return a+b; }; // Object var triangle = { sideA: 60, sideB: 30, sideC: 90 }; // Array var vocals = [‘a’,‘e’,‘i’,‘o’,‘u’];
  • 23. =, +=, -=, +, -, ++, --, /, /=, *, *=, % • 2 + 3; // => 3 • 2 - 2; // => 0 • a = 2; • a++ // soma 1; • a -- // subtrai 1; • c = 4; • c += 2 // c = c + 2 • c -= 2 // c = c + 2 • 10/2; // => 5 • 3*9; // => 27 • 7%3; // => 1
  • 24. Operadores Lógicos Os operadores lógicos são a base das linguágens de programação sem eles nada seria posssível. São eles que determinam o comportamento de um programa, mudam suas ações. Veremos que tudo se resume em “verdadeiro” e “falso”, 0 e 1.
  • 25. true / false true // true false // false "peixe" // true "" // false "0" // true 0 // false 1 // true 2 // true null // false undefined // false
  • 26. ==, ===, !=, !==, >, >=, <, <=, !, !!, &&, ||
  • 27. == 2 == 2 // true "agua" == "água" // false "1kg de algodão" == "1kg de ferro" // false
  • 28. != 3 != 3 // false "lua" != "sol" // true
  • 29. >, >=, <, <= 20 > 1 // true 3 > 6 // false 7 >= 2 // true 10 < 5 // false 12 <= 12 // true
  • 30. == vs ===, != vs !== 2 == "2" // true 2 === "2" // false 0 == false // true 0 === false // false 7 !== "7" // true
  • 31. && (AND) true && true // true true && false // false false && false // false false && true && true // false 3 < 5 && 7 > 2 // true "div" != "span" && 7 >= 6 // true
  • 32. || (OR) 7 || 4 // 7 (true) false || 2 // 2 (true) "maça" == "laranja" || 2 == 2 // true
  • 33. ! (not) !3 // false !("a" != "a") // true 2 == 2 && !(2 < 2) // true
  • 34. !! Converte o valor para true/false !!"banana" // true !!"0" // true !!"" // false !!null // false
  • 35. Estruturas de Controle • if, else if, else • for • switch • while • operador ternário (condição ? a : b)
  • 36. if, else if, else Testa uma condição e executa um comando caso verdadeiro e/ou falso var isiPad = navigator.userAgent.match(/iPad/); var isChrome = navigator.userAgent.match(/Chrome/); if( isiPad ) { // faz algo se for ipad } else if ( isChrome ) { // faz algo se for chrome } else { // faz algo caso não seja iPad nem Chrome }
  • 37. for Executa uma instrução até que a condição não seja mais satisfeita var frutas = ["laranja", "goiaba", "açaí"]; var totalFrutas = frutas.length; var frase; for (var i = 0; i < totalFrutas i++) { frase = frutas[i] + " é o item " + i + " da lista"; console.log( frase ); } // laranja é o item 0 da lista // goiaba é o item 1 da lista // açaí é o item 2 da lista
  • 38. for in Percorre as propriedades de um objeto var carro = { ano: 2012, marca: "volkswagen", cavalos: 110 } for ( propriedade in carro ) { console.log( propriedade ); } // ano // marca // cavalos for ( propriedade in carro ) { console.log( propriedade + " : " + carro[propriedade] ); } // ano : 2012 // marca : "volkswagen" // cavalos : 110
  • 39. switch Executa uma instrução de acordo com valor passado
  • 40. var dia = new Date().getDay(); // numero do dia da semana 0-6 var diaDaSemana; switch ( dia ) { case 0: diaDaSemana = "Domingo"; break; case 1: diaDaSemana = "Segunda"; break; case 2: diaDaSemana = "Terça"; break; case 3: diaDaSemana = "Quarta"; break; case 4: diaDaSemana = "Quinta"; break; case 5: diaDaSemana = "Sexta"; break; case 6: diaDaSemana = "Sábado"; break; default: diaDaSemana = "Desconhecido"; break; } console.log( diaDaSemana );
  • 41. while var valor = 0; var incremento = 0.5; var maximo = 100; while ( valor < maximo ) { valor = valor + incremento; } console.log( valor ); // 100
  • 42. Operador ternário condicao ? “valor se verdadeiro” : “valor se falso”
  • 43. var data = new Date(); var hora = date.getHours(); var periodo = hora < 18 ? "dia" : "noite"; var frase = "Por enquanto ainda é " + periodo;