Jump to content
Fórum Script Brasil
  • 0

Dá Para Confiar No Javascript...?


Halfar
 Share

Question

Dá para confiar no JavaScript ou ele sofre de ataque epilético das idéias??

Veja só a situação, tenho um programa com várias funcoes em JS, assim:

<script>

aqui varias funcoes

mais funcoes

etc..

</script>

tudo funcionando perfeitamente....

aí precisei criar mais uma função.

então acrescentei esta função no bloco acima, entre as tags <script> e </script>

ai começou a aparecer aquela mensagem com o ícone amarelo no rodapé da pagina "objeto esperado"...

verifiquei tudo e não achei erro nenhum...

ai fiz o seguinte, fiz um bloco de script separado dos demais acima, abri um novo bloco de codigo js, assim:

<script>

Novafuncao()

</script>

aí ele diz que falta fechar um colchete... mas está tudo certo...

A funcao em referencia que está dando problemas é a seguinte:

//===========================================================================================

//a funcao VerificaPeriodo faz a seguinte verificação:

// Se o usuario especificar mês e ano identicos para o periodo inicial e final, o calculo somente será

//feito se o dia for igual a 0 (zero), tanto para o periodo inicial quanto para o periodo final.

function VerificaPeriodo(){

//este grupo de variaveis será usada na função VerificaPeriodo

var DiaInicial = "";

var MesInicial = "";

var AnoInicial = "";

var DiaFinal = "";

var MesFinal = "";

var AnoFinal = "";

if(MesInicial == MesFinal and AnoInicial == AnoFinal){

if(DiaInicial == 0 and DiaFinal == 0){

return true;

}else{

return false;

}

}else{

return true;

}

}

}

Veja que a funcao é super-simples, não tem mistério nenhum...

Testei esta funcao em uma nova pagina, somente com esta funcao, só para testar...

ai não apresenta erro nenhum....

Então acho que o JS não tá bem das ideias não...

Afinal, o JS tem estes problemas??

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0
Afinal, o JS tem estes problemas??

:D

não Halfar... se há erro é por culpa do programador... sempre!

no código que você postou tem uma chave a mais.... remove a última chave e vê se ainda dá problema.

Dá Para Confiar No Javascript...?

heheheh.... dá sim ... podes crer !

Link to comment
Share on other sites

  • 0

resolvi pegar a funcao e mudar ela de local. Ela estava junto num mesmo bloco onde existem varias funcoes. Resolvi tirar ela de lá e mandei ela lá para o final da página.

dá erro, pede fechamento de colchetes, fala que o erro é na linha 1033, mas a ultima linha do script é 748...

então, só para ver no que daria, acrescentei mais um colchete no final, dá o mesmo erro...

então, resolvi apagar a funcao de vez, voltando o programa como era antes....

aí tudo funciona beleza....

não dá para entender....

se quiserem eu posto o codigo todo, mas é meio grandinho....

Link to comment
Share on other sites

  • 0

Um script pode não funcionar dependendo do lugar onde você o escreve, sim.

Geralmente, quando se cria funções elas são colocadas no cabeçalho do HTML.

Mas há casos em que se usa um bloco de códigos fora de uma função, colhendo dados de um campo de formulário, por exemplo.

<script>alert(document.formulario.nome.value)</script>

<form name="formulario">

<input type="text" name="nome" value="Rajneesh">

<form>

Nesse exemplo, haveria erro porque você pede uma informação do formulário antes do formulário existir.

<form name="formulario">

<input type="text" name="nome" value="Rajneesh">

<form>

<script>alert(document.formulario.nome.value)</script>

Agora, o formulário foi criado e em seguida se pede a informação. Aí está correto.

Lembre que o navegador é um interpretador, que executa instrução por instrução uma por vez, de cima pra baixo.

Link to comment
Share on other sites

  • 0

de fato, eu sempre costumo colocar os codigos js antes do formulario.

No entanto, algo aqui agora me chama a atenção.

Na realidade esta funcao ela será executada a partir de uma chamada que existe dentro de outra funcao, assim:

function(teste1){

codigos aqui...

etc...

VerificaPeriodo();

}

function VerificaPeriodo(){

//este grupo de variaveis será usada na função VerificaPeriodo

var DiaInicial = "";

var MesInicial = "";

var AnoInicial = "";

var DiaFinal = "";

var MesFinal = "";

var AnoFinal = "";

if(MesInicial == MesFinal and AnoInicial == AnoFinal){

if(DiaInicial == 0 and DiaFinal == 0){

return true;

}else{

return false;

}

}else{

return true;

}

}

}

As variaveis que existem na funcao VerificaPeriodo(), na realidade elas são criadas e alimentadas na função teste1(), a funcao teste1 por sua vez, é executada quando o usuário clica num botão no formulário, que verifica várias funcoes, inclusie a funcao teste1().

Eu coloquei estas variaveis aí apenas para mostrar o problema que ocorria...

Link to comment
Share on other sites

  • 0

Bem, encontrei a resposta desta coisa estranha....

Não tinha nada a ver com as mensagens de objeto esperado ou } esperado....

O problema é que numa determinada instrucao na funcao existia o operador and, e pelo jeito o JS se confunde com este operador, pois aceitou somente o operador && que corresponde ao and

Sendo este o problema, creio que o JS deve uma mensagem de erro mais coerente....

Link to comment
Share on other sites

  • 0

Ih rapaz, não tinha visto isso.... c tem razão.

e pelo jeito o JS se confunde com este operador

Na verdade o operador AND não é definido em JS. Os operadores são && ( E booleano) e || (OU booleano)

Sendo este o problema, creio que o JS deve uma mensagem de erro mais coerente....

As vezes a mensagem de erro num tem nada a ver com o erro, mesmo. Mas o "console de JavaScript" varia com o navegador usado. Se você usasse o Opera ou o Firefox (recomaendado pra uso com JS), talvez a mensagem fosse diferente, talvez mais coerente.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      151k
    • Total Posts
      649.1k
×
×
  • Create New...