As funções javaScript são Objetos e não são estruturas com for e como if. Para criar uma função usa-se a palavra function e o nome da função, parênteses que recebe os parâmetros e o bloco da função entre as chaves.
Segundo as boas práticas de desenvolvimeto web, deve-se ter em arquivos separados do documento html, tanto o script como o css. Quando a chamada javaScript é feita dentro do código html, que é a forma in line de se aplicar o script, isso torna a manutenção das páginas mais difícil e demorada. Em um site com muitas páginas, seria imensamente trabalhoso procurar por cada linha de script, para modificação.
<script type = "text/javascript" src= "js/funcao.js"></script> <li id ="l" > Literal (clicando aqui abre uma janela de script)</li> <script type = "text/javascript" src= "js/funcao.js"> </script>
Colocar o script depois do elemento li id, nesse caso o javaScript consegue encontrar o elemento para vincular o evento onclick dele àquela função. Como no exemplo acima.
Esperar que o documento todo seja carregado para fazer essa atribuição.
No javaScript: /*quando a janela for carregada será associado a essa janela uma outra função literal*/ window.onload = function() { document.getElementById("l").onclick = function() { alert("teste"); pode-se obter retorno de vários tipos tais como: tipos primitivos, booleanos, outra função um objeto ou um array [] contendo vários parâmetros. As funções literais podem ser usadas para associar eventos html. } } function teste(){ alert("teste"); }
Várias bibliotecas javaScript, inclusive a jQuery, utilizam essa técnica para vincular a cada um dos elementos do documento html, as funções que vão tratar aqueles elementos. Dessa maneira o código html não fica poluído com código javaScript junto.
Exemplo: function somar() { alert (4+9); } somar(); /*para chamar a função, nome, parênteses*/ Resultado: 13 }
A função declarativa é construída com a palavra chave function e o nome da função, no exempo abaixo somar. Esta função acompanha o javaScript desde o início. Muitas bibliotecas usam essa forma de função.
No javaScript: function somar(x,y) { alert(x+y); } Função com parâmetros Pode-se ter quantos parâmetros quiser e de qualquer tipo, inclusive outras funções. No javaScript: function somar(x,y) { alert(x+y); ... } somar(3, 6);
A função anônima, como o próprio nome já diz, não tem nome.
No javaScript: new Function("x","y", "alert(x+y);"); somar(3, 6); Obs: Para atribuir um nome a essa função, cria-se uma variável: No javaScript: var somar2 = new Function("x","y", "alert(x+y);"); somar2(3, 6); Resultado: 9/*essa função equivale à função declarativa*/
Para construir uma função literal basta tirar o nome da função. As bibliotecas mais recentes tendem a usar essa forma de construção de funções, principalmente para manipulação de eventos. Para atribuir um nome a função.
No javaScript: var somar2 = new Function("x","y", "alert(x+y);"); var somar3 = function (x, y){ alert(x+y); } somar3(5, 7); Resultado: 12/*essa função equivale à função declarativa*/