Escolar Documentos
Profissional Documentos
Cultura Documentos
- APOSTILA -
PATROCNIO 2013
APOSTILA DE JAVASCRIPT
PATROCNIO 2013 i
ii
Contedo
1 INTRODUO 2 NOES BSICAS
2.1 DECLARAO EM JAVASCRIPT . . . . . . . . . . . . . . . . . . . . . . 2.2 PONTO E VIRGULA(;) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 ESPAO EM BRANCO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 QUEBRA DE LINHA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 COMENTRIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 VARIVEIS EM JAVASCRIPT . . . . . . . . . . . . . . . . . . . . . . . . 2.6.1 2.6.2 Declarando Variveis . . . . . . . . . . . . . . . . . . . . . . . . . . Uma instruo, Muitas Variveis . . . . . . . . . . . . . . . . . . .
1 3
3 3 3 4 4 4 5 6 6 7 7 7 8 9 9
2.7 ARITMTICA EM JAVASCRIPT . . . . . . . . . . . . . . . . . . . . . . 2.8 TIPOS DE DADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 Tipos Dinmicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nmeros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Boolenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 OBJETOS
3.1.1 3.1.2 3.1.3
13
Criando Objetos em JavaScript . . . . . . . . . . . . . . . . . . . . 14 Acessando os Atributos dos Objetos . . . . . . . . . . . . . . . . . . 14 Acessando os Mtodos dos Objetos . . . . . . . . . . . . . . . . . . 15
4 FUNES
4.1.1 4.1.2
17
4.1 FUNES NO JAVASCRIPT . . . . . . . . . . . . . . . . . . . . . . . . . 17 Chamando Funes com Argumentos . . . . . . . . . . . . . . . . . 17 Funes com Valores de Retorno . . . . . . . . . . . . . . . . . . . . 19
5 VARIVEIS E OPERADORES
21
5.1 VARIVEIS LOCAIS NO JAVASCRIPT . . . . . . . . . . . . . . . . . . . 21 5.2 VARIVEIS GLOBAIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.3 O TEMPO DE VIDA DE UMA VARIVEL . . . . . . . . . . . . . . . . . 21 5.4 ATRIBUIO DE VALORES A VARIVEIS NO DECLARADAS . . . 22 5.5.1 5.5.2 5.5.3 5.5.4 5.5.5 5.5.6 5.5.7 5.5.8 5.5.9 Operadores de Atribuio . . . . . . . . . . . . . . . . . . . . . . . 22 Operador + Utilizado em string . . . . . . . . . . . . . . . . . . . . 23 Adio(soma) Strings e Numeros . . . . . . . . . . . . . . . . . . . 24 Operadores de Comparao . . . . . . . . . . . . . . . . . . . . . . 24 Operadores Lgicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Operador Condicional . . . . . . . . . . . . . . . . . . . . . . . . . 25 IF ... ELSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 IF ... ELSE IF ... ELSE . . . . . . . . . . . . . . . . . . . . . . . . 28 A INSTRUO SWITCH . . . . . . . . . . . . . . . . . . . . . . . 28 5.5 OPERADORES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6 LAOS DE REPETIO
31
7 BREAK / CONTINUE
35
8 ERROS
37
8.1 ERRORS- THROW e TRY TO CATCH . . . . . . . . . . . . . . . . . . . 37 8.2 OS ERROS PODEM OCORRER . . . . . . . . . . . . . . . . . . . . . . . 37 8.3 O JAVASCRIPT TRY AND CATCH . . . . . . . . . . . . . . . . . . . . . 37 8.4 UTILIZANDO THROW . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9 VALIDAO DE FORMS
41
vi
Captulo 1 INTRODUO
Os exemplos vistos at agora s executavam comando diretamente na sada da pgina. Mas com frequncia desejamos executar comandos ou aes quando algum evento ocorre, como o clicar de um boto. Se colocarmos o JavaScript dentro de uma funo, ns podemos chama-la somente quando um evento ocorrer. Podemos inserir inmeros cdigos javascript dentro de um documento HTML. Os scripts HTML podem ser inseridos em trs locais, so eles: <head>, <body> e um arquivo externo com a extenso .js . comum se colocar os scripts java na <head> ou no nal do documento html. Desta forma todos os cdigos JavaScrip esto em um s lugar e no atrapalham nos contedos do documento.
As instrues em javascript so "comandos"para o navegador(browser). O propsito das instrues dizer ao navegador o que fazer. No exemplo de a seguir a instruo diz ao navegador para escrever "Ola mundo"dentro
document . g e t E l e m e n t B y I d (
2.2
PONTO E VIRGULA(;)
O ponto e vrgula destinado para separar as instrues em JavaScript. Normalmente se coloca um ponto e vrgula ao nal de cada instruo.
2.3
ESPAO EM BRANCO
O javascript ignora espaos extra. Voc pode adicionar espaos extras pra facilitar o entendimento de seu cdigo, porem estes espaos sero ignorados. 3
1 2
Var var
p e r s o n= person
"Hege" ; "Hege" ;
2.4
QUEBRA DE LINHA
Voc pode quebrar uma linha de cdigo dentro de uma string de texto com barra invertida(\).
1 2
document . w r i t e (
World!" ) ;
"Hello \
"Hello World!" ) ;
2.5
COMENTRIOS
Para comentrios de linha voc deve utilizar "//", este comentrio tambm pode ser utilizado aps uma linha de comando. Os Comentrios de trecho utilizam "/*... */". Os comentrios podem ser utilizados para se evitar que uma linha de comando seja executada.
2.6
VARIVEIS EM JAVASCRIPT
<
11 12 13 14 15
</
document . w r i t e ( z </
script>
"<br >" ) ;
</
body> html>
Assim como na matemtica utilizamos as letras x, y e z para armazenar as variveis para clculo, estas variveis esto armazenando informao. As variveis podem armazenar nmeros(x=5), assim como expresses(z=x+y). As variveis podem ter nomes curtos como "x"ou "y"ou nomes mais explicativos como "nome", "idade", "valorTotal".
Os nomes das variveis devem comear por letras. Os nomes das variveis so case sensitive (y e Y so variveis diferentes).
Aps a declarao, a varivel est vazia(no possui valor). Para atribuir um valor utilize o sinal igual(=).
1
nomeDeCarro=
"Volvo" ;
Voc tambm pode declarar e atribuir um valor para a varivel em uma s linha de cdigo.
1
var nomeDeCarro=
"Volvo" ;
No exemplo a seguir estamos criando uma varvel chamada de nomeDeCarro, atribumos o valor "Volvo"e colocamos este valor dentro de uma componente HTML com a id="demo": 5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
<
<
html> body>
< >C l i c k
the
button
to
create
variable ,
and
display
the
r e s u l t .</ >
<
i t </
button>
<
p id="demo"></p> script>
function { var c a r n a m e= myFunction ( )
<
"Volvo" ;
document . g e t E l e m e n t B y I d ( } </
"demo" ) . innerHTML=c a r n a m e ;
script>
</ </
body> html>
"Garcia" ,
i d a d e =40 ,
t r a b a l h o=
"Garcia" ,
i d a d e =40 , t a b a l h o=
2.7
ARITMTICA EM JAVASCRIPT
Assim como na lgebra voc pode realizar clculos utilizando as variveis do javascript, utilizando operadores como = e + . Veja o exemplo a seguir:
1 2 3 4 5 6 7 8 9
< <
<
html> body>
< >S e n d o <
p y =5 , c a l c u l e x=y +2 , e m o s t r e o r e s u l t a d o .</ p > button onclick=" myFunction ()">R e s p o s t a</ button> p id="demo"></p> script>
<
10 11 12 13 14 15 16 17 18 19 20
</
myFunction ( )
x=y + 2 ; demoP=d o c u m e n t . g e t E l e m e n t B y I d (
"x="
"demo" )
+ x;
script>
</
body> html>
2.8
TIPOS DE DADOS
O JavaScript possui os seguintes tipos de dados, String, Boolean, Array, Object, Null, Indenido. A seguir vamos explicar cada um deles.
2.8.2 Strings
Uma String uma varivel que armazena uma srie de caracteres como "Matheus Garcia". Uma string qualquer texto entre aspas. Voc pode utilizar aspas simples ou aspas duplas.
1 2
var var c a r r o n o m e=
"Volvo XC60" ;
XC60 ' ;
// a s p a s // a s p a s
duplas simples
Voc pode utilizar as aspas dentro da string, de forma que estas sapas no atrapalhem as aspas que denem a string. 7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
<
body>
< var var var var var
script>
n o m e c a r r o 1=
"Volvo XC60" ;
XC60 ' ;
"It 's alright" ; r e s p o s t a 2="O nome dele 'Johnny '" ; r e s p o s t a 3 = 'O nome d e l e "Johnny" ' ;
+ +
+ + +
script>
"<br >" ) "<br >" ) "<br >" ) "<br >" ) "<br >" )
</ </
body> html>
2.8.3 Nmeros
Os nmeros podem ser escritos no formato inteiro ou decimal.
1 2
var var x1 = 3 4 . 0 0 ; x2 =34; // e s c r i t o s // e s c r i t o s com sem duas casas casas decimais
decimais
Nmeros muito grandes podem ser escritos com uma notao exponencial especca. O exeplo a seguir ilustra uma situo onde pode-se ver como so representados quatro nmeros com notaes diferentes.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
document . w r i t e ( x1 document . w r i t e ( x2 var var var var x1 = 3 4 . 0 0 ; x2 =34; y =123 e 5 ; z =123 e < <
<
5;
+ +
document . w r i t e ( y + document . w r i t e ( z +
16 17 18 19
</
script>
</ </
body> html>
2.8.4 Boolenas
Variveis do tipo booleanas podem receber apenas dois tipos de valores: verdadeiro ou falso.
1 2
var var x=t r u e ; y= f a l s e ;
2.8.5 Arrays
O prximo cdigo mostra um exemplo de array.
1 2 3 4
var c a r s=new Array ( ) ;
ou (forma compacta)
1
var c a r s=new Array (
ou
1 2 3 4 5 6 7 8 9 10 11 12 13 14
} for { document . w r i t e ( c a r s [ ( i = 0 ; i< c a r s . l e n g t h ; < <
i ++)
+
i]
"<br >" ) ;
15 16 17 18
</
</
script>
</
body> html>
A indexao dos arrays so baseadas em zero, sendo assim, o primeiro elemento possui ndice [0] e o segundo possui ndice [1] e assim por diante.
2.8.6 Objetos
Um objeto delimitado por chaves. Dentro das chaves as propriedades do objeto so denidas em pares, este pares so o nome e o valor da propriedade (nome:valor). As propriedades so separadas por virgulas.
1
var p e s s o a ={ p r i m e i r o n o m e :
"John" ,
sobrenome :
"Doe" ,
id :5566};
O objeto (pessoa) no exemplo acima possui trs propriedades: primeironome, sobrenome e id. Espaos e linhas em branco no importam, sua denio de um objeto pode ser declarada da seguinte forma:
1 2 3 4 5 6
}; var { firstname lastname id : : : p e r s o n=
"John" , "Doe" ,
5566
"John" , "Doe" ,
5566
script>
"lastname" ]
body>
10
17
</
html>
p e r s o n= new
Todas as variveis criadas no JAVASCRIP j so objetos, sendo assim quando declarar uma nova varivel voc est criando um novo objeto.
11
12
Captulo 3 OBJETOS
3.1 OBJETOS EM JAVASCRIPT
"Tudo"no JavaScript so objetos: strings, nmeros, array... Em javascript, um objeto um dado com propriedades e mtodos. Propriedades(atributos) so valores associados ao objeto. Mtodos so aes que podem ser exercidas pelo objeto. Um exemplo real de objeto. Tomemos como exemplo um carro.
Figura 3.1: Objeto Carro. As propriedades de um carro incluem nome, modelo, peso, cor, etc. Todos os carros possuem estas propriedades, porem os seus valores diferem de carro para carro. Os mtodos que os carros possuem podem ser start(), drive(), brake(), etc. Todos os carros possuem estes mtodos mas eles so executados em momentos diferentes. 13
Como foi dito anteriormente em javascript, os objetos so dados(variveis) com mtodos e propriedades(atributos). Quando declarar uma varivel como:
1
var txt =
"Ola" ;
Voc est criando um objeto string. O objeto string possui uma propriedade nativa chamada length. Para a string a cima possui o valor de length igual a 5. O objeto string possui alguns mtodos nativos.
document . w r i t e ( p e r s o n . f i r s t n a m e </
script>
" is "
person . age
</
body> html>
nomeDoObjeto . n o m e D o A t r i b u t o
O exemplio a seguir utiliza o atributo length do objeto string para encontrar o tamanho(nmero de caracteres) da string.
1 2
var var m e s s a g e=
"Hello World!" ;
x=m e s s a g e . l e n g t h ;
"Hello world!" ;
x=m e s s a g e . t o U p p e r C a s e ( ) ;
O valor de x aps a execuo do cdigo ser "HELLO WORLD!". OBS: comum encontrar em linguagem orientadas a objeto a utilizao da notao camel-case para dar nome as funes.
15
16
Captulo 4 FUNES
4.1 FUNES NO JAVASCRIPT
Uma funo um bloco de cdigo que ser executado quando algum chama-la. A funo o bloco de cdigo escrito dentro de chaves , precedida pela palavra function.
1 2 3 4
} function { cdigo que ser executado . nomedafuno ( )
A funo pode ser chamada diretamente quando um evento ocorrer(como o clicar do mouse) , e pode ser chamada de qualquer lugar dentro do cdigo javascript. Nota: O javascript case sensitive, sendo assim quando chamar a funo necessrio que se utilize o nome da funo da mesma maneira na qual ela foi criada.
17
As variveis e os argumentos devem estar na mesma ordem. A primeira varivel corresponde ao primeiro argumento declarado na funo. O exemplo a seguir mostra isto.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
</ } </ < <
the
button
to
call
function
with
a r g u m e n t s</ >
<
i t </
button>
"Welcome "
+ name +
job ) ;
script>
</
body> html>
A funo do exemplo acima mostrar um alerta com a seguinte frase "Welcome Harry Potter, the wizard "quando o boto for clicado. A funo exvel, voc pode chamar a funo utilizando diferentes argumentos e mensagens de boas vindas diferentes sero apresentadas.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
</ } </ < <
<
html> body>
< >C l i c k
one
of
the
buttons
to
call
function
with
a r g u m e n t s</ >
button onclick=" myFunction ('Harry Potter ','Wizard ')"> C l i c k f o r H a r r y P o t t e r</ button> <button onclick=" myFunction ('Bob ','Builder ')"> C l i c k f o r Bob</ button>
<
script>
function m y F u n c t i o n ( name , j o b ) alert (
"Welcome "
+ name +
job ) ;
script>
body>
18
17
</
html>
No exemplo acima um alerta diferente ser apresentado dependendo do boto clicado pelo usurio.
return }
A funo ir retornar o valor 5. Nota: No todo o javascript que ir parar a sua execuo, somente a funo que ter sua execuo parada. O javascript ir continuar a sua execuo do ponto onde a chamada da funo foi realizada. A chamada da funo ser substituda pelo valor retornado pela funo.
1
var myVar=m y F u n c t i o n ( ) ;
A varivel myVar ter o valor 5 atribudo a ela, que o valor retornado pela funo myFunction(). Voc pode retornar um valor baseado em argumentos passados para a funo.
1 2 3 4 5 6 7 8 9
< <
example the
calls
function
returns
r e s u l t :</ >
which
performs
calculation ,
and
<
p id="demo"></p> script>
function myFunction ( a , b )
19
10 11 12 13 14 15 16 17 18
</
{ return } a
b ;
document . g e t E l e m e n t B y I d ( </
script>
"demo" ) . innerHTML=m y F u n c t i o n ( 4 , 3 ) ;
</
body> html>
A utilizao do comando return pode ser utilizado para sair da funo. O valor a ser retornado opcional.
1 2 3 4 5 6 7 8
} function { if { return ; } x=a+b ( a>b ) myFunction ( a , b )
20
Uma varivel declarada (utilizando var) com uma funo javascript se tornar LOCAL e s pode ser acessada de dentro desta funo (a varivel tem um escopo local). Voc tem variveis locais com o mesmo nome em funes diferentes, porque variveis locais somente so reconhecidas pela funo na qual elas foram declaradas. As variveis locais so deletadas assim que a funo completada.
5.2
VARIVEIS GLOBAIS
Variveis declaradas fora de uma funo se tornam GLOBAIS, e todas as funes na pgina podem acessa-las.
5.3
O tempo de vida de uma varivel comea quando ela declarada. Variveis LOCAIS so deletadas quando a funo for encerrada. As variveis GLOBAIS so deletadas quando a pgina for fechada(cliente). 21
5.4
Se voc atribuir um valor para uma varivel que ainda no foi declarada, a varivel ser declarada automaticamente como uma varivel GLOBAL. Veja o exemplo.
1
c a r n a m e=
"Volvo" ;
Neste exemplo a varivel carname ser uma varivel global, mesmo que executada dentro de uma funo.
5.5
OPERADORES
Os operadores aritmticos so utilizados para realizar operaes entre variveis e valores. Sendo y= 5, a tabela a seguir explica cada um dos operadores aritmticos.
Operador Descrio Exemplo Valor de X Valor de Y + Adio x=y+2 7 5 Subtrao x=y-2 3 5 * Multiplicao x=y*2 10 5 / Diviso x=y/2 2.5 5 % Resto da diviso x=y%2 1 5 ++ Incremento x=++y 6 6 x=y++ 5 6 -Decremento x=- -y 4 4 x=y- 5 4
5.5.1 Operadores de Atribuio
Sendo x=10 e y=5, a tabela a seguir explica cada um dos operadores.
Tabela I: Operadores
22
Operador = += -= *= /= %=
Exemplo Mesmo que X Resultado x=y x=5 x+=y x=x+y x=15 x-=y x=x-y x=5 x*=y x=x*y x=50 x/=y x=x/y x=2 x%=y x=x%y x=0
p the button to c r e a t e and add s t r i n g v a r i a b l e s .</ p > button onclick=" myFunction ()">Try i t </ button> p id="demo"></p> script>
function { t x t 1= t x t 2= myFunction ( )
<
script>
</
body> html>
O espao em branco pode ser adicionado dentro de cada uma das strings.
1 2 3
t x t 1= t x t 2=
t x t 3=t x t 1+t x t 2 ;
Outra possibilidade de se inserir o espao em branco coloc-lo entre as expresses na varivel txt3.
1
t x t 1=
"What a very" ;
23
2 3
t x t 2=
t x t 3=t x t 1+
and i t </
button>
s t r i n g s .</ >
<
demoP=d o c u m e n t . g e t E l e m e n t B y I d ( + y +
script>
</
body> html>
"Too young" ;
24
Operadores Descrio Comparao Resultado == igual a x==8 false X==5 true === exatamente igual a (valor e tipo) x==="5" false x===5 true != Diferente x!=8 true !== Diferente (nem valor nem tipo) x!=="5" true x!==5 false > Maior que x>8 false < Menor que x<8 true >= Maior igual a x>=8 false <= Menor igual a X<=8 true
5.5.5 Operadores Lgicos
Os operadores lgicos so utilizados para estabelecer a lgica entre variveis e valores. Sendo x=6 e y=3, a tabela a seguir mostrar a utilizao destes operadores.
Operador && || !
Descrio Exemplo And(e) (x<10 && y >1) verdadeiro Or(ou) (x==5 || y==5) falso Not(no) !(x==y)
the
button
to
check
the
a g e .</ >
input id="age" value="18" /> p e n o u g h t o v o t e ?</ p > <button onclick=" myFunction ()">Try
Age :< < >Old <
i t </
button>
p id="demo"></p>
25
11 12 13 14 15 16 17 18 19 20 21 22 23
</ <
script>
function myFunction ( ) var age , v o t e a b l e ;
script>
</
body> html>
Instrues Condicionais
As instrues condicionais so utilizadas para se executar diferentes aes se baseando em algumas condies. No javaScript possumos as seguintes instrues condicionais:
IF IF ... ELSE IF ... IF ELSE .... ELSE SWITCH
IF
A instruo IF executa um trecho de cdigo caso alguma condio em especco seja verdadeira.
1 2 3 4
if { code } to be executed if condition is true ( condition )
ATENO: o if escrito com letras minsculas, caso for esvrito com letras maisculas(IF) ir gerar um erro. 26
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
<
the
button
2 0 : 0 0 .</ >
to
get
"Good day"
greeting
if
the
time
is
less
<
i t </
button>
<
p id="demo"></p> script>
function { var var if { x= } document . g e t E l e m e n t B y I d ( } x= myFunction ( )
<
"" ;
Date ( ) . g e t H o u r s ( ) ;
t i m e=new ( t i m e<2 0 )
</
script>
</ </
body> html>
"Good evening" ;
27
"Good morning" ;
"Good day" ;
"Good evening" ;
code
block
be
executed
if
is
different
from
case
and
28
11
Como isto funciona: Primeiro temos uma nica expresso n(frequentemente uma varivel) avaliada uma vez. O valor da expresso comparado com os valores de cada caso "case"na estrutura switch. Caso combinem, o bloco de cdigo associado aquele "case" executado. A utilizao de break previne que o cdigo entre na prxima estrutura "case".
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
</ } </ } document . g e t E l e m e n t B y I d ( < <
the
button
to
display
what
day
it
is
t o d a y .</ >
<
i t </
button>
<
p id="demo"></p> script>
function { var var x; d=new (d) Date ( ) . getDay ( ) ; myFunction ( )
switch { case x=
0:
break ; case x=
break ; case x=
break ; case x=
break ; case x=
break ; case x=
break ; case x=
break ;
script>
</
body> html>
29
break ; case x=
break ; default : x=
30
O loop FOR possui 3 declaraes, elas so os statement de 1 a 3. Statement 1: executando antes do loop. Statement 2: dene as condies para a execuo do loop. Statement 3: executado uma vez a cada iterao do cdigo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
} document . g e t E l e m e n t B y I d ( < <
html> <body > p the button to loop through a block of button onclick=" myFunction ()">Try i t </ button> <p id="demo"> </ p >
< >C l i c k < code five t i m e s .</ >
script>
function myFunction ( ) var for { x=x + x=
"" ;
i = 0 ; i< 5 ;
( var
i ++)
+
"<br >" ;
"demo" ) . innerHTML=x ;
31
17 18 19 20 21
</
} </
script>
</
body> html>
A declarao 1 (statement 1), normalmente a utilizamos esta declarao para iniciar a varivel que ser utilizada no loop. Voc pode omitir a declarao 1 caso deseje, porm necessrio declarar esta varivel antes do loop. O javaScript tambm possibilita a declarao de mais de uma varivel dentro do espao da declarao 1. A declarao 2 (statement 2) utilizada para se vericar o valor da varivel inicial. Caso a declarao 2 retorne um valor verdadeiro (true) o loop ser executado mais uma vez e caso esta declarao retorne um valor falso (false) o loop ser terminado. Existe a possibilidade de se omitir o valor da declarao 2 porem ser necessria a insero da instruo break dentro do loop, caso contrrio o loop nunca mais ir parar a sua execuo. A instruo break ser abordada com mais detalhes. A declarao 3 (statment 3) utilizada para se incrementar o valor da varivel inicial. possvel se omitir a declarao 3, porem uma linha de cdigo equivalente a esta declarao deve ser inserida dentro do loop.
O cdigo a seguir mostra a execuo do loop while. Enquanto o valor de i for menor que 5 o lao de repetio continuar a ser executado.
1 2 3
<
32
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
</
the than
< <
to
loop
through
block
of
as
long
as
<
em> i</em>
is
i t </
button>
<
"" , i = 0 ;
( i<5 )
while { x=x +
i ++;
"<br >" ;
} document . g e t E l e m e n t B y I d ( } </
"demo" ) . innerHTML=x ;
script>
</
body> html>
Caso esquea a condio de parada do loop while o bloco de cdigo ser executado innitamente.
O exemplo a seguir mostra a utilizao do lao do/while. O lao ser executado pelo menos uma vez. Nunca se esquea de utilizar a condio de parada, caso contrrio o lao ser repetido innitamente.
1 2 3 4 5
<
the than
<
to
loop
through
block
of
as
long
as
<
em> i</em>
is
i t </
button>
33
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
</
<
p id="demo"></p> script>
function { var do { x=x + i ++; } while ( i<5 ) x= myFunction ( )
<
document . g e t E l e m e n t B y I d ( } </
"demo" ) . innerHTML=x ;
script>
</
body> html>
Mude a condio do while para vericar que o lao executado pelo menos uma vez.
34
O break utilizado anteriormente nesta apostila estava sendo utilizada para "pular fora"de um switch(). Um break tambm pode ser utilizado para fora de um loop. No exemplo a seguir o break "pula fora"do lao e continua a execuo do cdigo javaScript.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
</ } </ } document . g e t E l e m e n t B y I d ( } x=x + < <
html> <body > p t h e b u t t o n t o do a l o o p w i t h a b r e a k .</ p > button onclick=" myFunction ()">Try i t </ button> <p id="demo"> </ p >
< >C l i c k <
script>
function myFunction ( ) var for { if { break ; ( x=
"" , i = 0 ;
( i = 0 ; i< 1 0 ;
i ++)
i ==4)
"<br >" ;
"demo" ) . innerHTML=x ;
script>
body>
35
25
</
html>
7.2
CONTINUE
O continue para(break) uma iterao do loop(dentro do loop), caso uma condio especca ocorra e continua a execuo do loop. No exemplo a seguir o valor 3 pulado.
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
</ } </ } document . g e t E l e m e n t B y I d ( } x=x + < <
<
html> body> p t h e b u t t o n t o do a l o o p w h i c h will skip button onclick=" myFunction ()">Try i t </ button> <p id="demo"> </ p >
< >C l i c k < the step where i = 3 .</ >
script>
function myFunction ( ) var for { if { continue ; ( x=
"" , i = 0 ;
( i = 0 ; i< 1 0 ;
i ++)
i ==3)
"<br >" ;
"demo" ) . innerHTML=x ;
script>
</
body> html>
36
Captulo 8 ERROS
8.1 ERRORS- THROW e TRY TO CATCH
O try permite que voc teste um bloco de cdigos para vericar erros. O catch permite manipular o erro. O Throw permite a criao de um tipo de erro
8.2
Quando o JavaScript est executando um cdigo JavaScript, alguns tipos de erros podem ocorrer. Estes erros podem ser de sintaxe, erros por falta de termos ou palavras, erros por tipos de navegadores, por utilizao de termos em momentos errados e erros por servidores.
8.3
O try permite que um trecho ou bloco de cdigo seja testado para vericao de erros enquanto est sendo executado. O catch permite voc executar um bloco de cdigo caso um erro ocorra dentro da instruo try. 37
As declaraes em javascript do try and catch ocorrem em pares. Sua sintaxe a seguinte:
1 2 3 4 5 6 7 8
try { / /Run } catch ( err ) { // Handle } errors here some code here
<
t x t=
"" ;
message ( )
adddlert (
"Welcome guest!" ) ;
"There was an error on this page .\n\n" ; "Error description : " + e r r . m e s s a g e + "\n\n" ; t x t+ ="Click OK to continue .\n\n" ;
t x t= t x t+ = a l e r t ( txt ) ;
script> head>
/>
body> input type="button" value="View message" onclick="message ()" </ body >
< <
html>
8.4
UTILIZANDO THROW
A utilizao da funo throw permite a criao de um erro especco. Se voc utilizar o throw em conjunto com o try e o catch possvel criar mensagens de erros customizveis. A sintaxe a seguinte: 38
throw
exception
Essa "exception"pode ser qualquer tipo de dado do javaScript como uma string, um numero, um dado booleano ou at um objeto. O exemplo a seguir examina a entrada dentro de uma input. Caso o valor estiver errado o thrown ser acionado. O erro ser capturado pela instruo catch e uma mensagen de erro customizada ser mostrada dependendo do tipo de erro.
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
</ } } </ { < <
<
i f ( x= =
"" )
var
y=d o c u m e n t . g e t E l e m e n t B y I d (
y . innerHTML=
"Error: "
err
"mess" ) ; "." ;
script>
h1>My F i r s t J a v a S c r i p t</ h1> p i n p u t a number b e t w e e n 5 and 1 0 :</ p > <input id="demo" type="text"> <button type="button" onclick=" myFunction ()">T e s t <p id="mess"> </ p >
< < >P l e a s e </
I n p u t</
button>
body> html>
39
40
O exemplo a seguir verica se um determinado campo foi deixado em vazio. Se um campo foi deixado vazio uma mensagem de alerta exibida, a funo retornar falso e os dados no sero enviados.
1 2 3 4 5 6 7 8 9
} function { var if { alert ( return } x=d o c u m e n t . f o r m s [ ( x= =n u l l || x= = validateForm ( )
"" )
"myForm" ] [ "fname" ] .
value ;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
<
<
"" )
"myForm" ] [ "fname" ] .
value ;
</ </
script> head>
body> form name="myForm" action=" demo_form .asp" o n s u b m i t="return validateForm ()" method="post"> F i r s t name : <input type="text" name ="fname"> <input type="submit" value="Submit"> </ form> </ body >
< < </
html>
Um outro exemplo para apresentar a validao de campos a vericao de e-mail. Neste exemplo a funo verica a sintaxe geral de um e-mail. Isto signica que o dado de entrada deve conter um smbolo de @ e pelo menos um ponto(.). O smbolo @ no pode ser o primeiro caractere do endereo de e-mail, e o ltimo ponto deve estar aps o sinal de @, e antes de no mnimo dois caracteres nais.
1 2 3 4 5 6 7 8 9 10 11
} function { var var var if { alert ( return } x=d o c u m e n t . f o r m s [ a t p o s=x . i n d e x O f ( validateForm ( )
value ;
( a t p o s<1
d o t p o s +2 > =x . l e n g t h )
<
42
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
</ </
value ;
( a t p o s<1
d o t p o s +2 > =x . l e n g t h )
</
script> head>
o n s u b m i t=
body> form name="myForm" action=" demo_form .asp" ();" method="post"> E m a i l : <input type="text" name ="email"> <input type="submit" value="Submit"> </ form> </ body >
< <
"return validateForm
html>
43