Ir para conteúdo
Fórum Script Brasil
  • 0

Dá Para Confiar No Javascript...?


Halfar

Pergunta

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 para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...