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*/