Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Ordem das funções interfere na execução?

function atualizaTamanhoFrase(){
    var numPalavras = contaPalavras(frase);
    $("#qtdPalavras").text(numPalavras);
}
function contaPalavras(cont){
    return cont.split(/\S+/).length -1;
}

Em linguagens como o PHP quando chamamos uma função que ainda não foi declarada é emitido um erro.

Neste exemplo usando a função contaPalavras percebi que o Jquery/javascript não exibe erro independente da posição da função. Isso sempre acontece? Ou existe alguma outra situação em que a posição das funções interfere??

2 respostas
solução!

Oi Matheus,

No JavaScript isso funciona normalmente, pois ele tem um recurso chamado Hoisting, que basicamente funciona meio que "puxando" as variáveis e funções para o inicio, impedindo assim que ocorra um erro de variável ou função não declarada.

Sendo assim, se você tiver o seguinte código JavaScript:

console.log(nome);
var nome = 'joão';
xpto();
function xpto() {
    //faz alguma coisa...
}

Ele será interpretado como se estivesse sido escrito assim:

var nome;
function xpto() {
    //faz alguma coisa...
}
nome = 'joão';
console.log(nome);
xpto();

Repare que a declarção da variável e a função foram "puxadas" para o inicio, e graças a isso não ocorre nenhum erro :)

Bons estudos!

Muito bom! Obrigado pelos esclarecimentos.