JavaScript - Aula 04 - Funções PDF
JavaScript - Aula 04 - Funções PDF
Funções
Cristiano Pires Martins
Fonte: JavaScript - Guia do Programador
Maujor
Definições
• Expressão de função:
var minhaFuncao = function(){
// aqui bloco de código
};
• Declaração de Funções:
var result = add(5,5);
function add(num1, num2){
return num1 + num2;
}
• Expressão de Funções:
var result = add(5,5); //ERRO!!!!
var add = function(num1, num2){
return num1 + num2;
}
Parâmetros
• É possível passar qualquer quantidade
de parâmetros para qualquer função
sem causar erros;
• Os parâmetros são armazenados em
uma estrutura semelhante a arrays
chamada arguments;
• arguments pode receber qualquer
quantidade de valores.
Exemplo 1 - parâmetros
function reflect(value){
return value;
}
console.log(reflect(“Hi!”)); //“Hi!"
console.log(reflect(“Hi!”,25)); //“Hi!”
console.log(reflect.lenght); // 1
Exemplo 2 - parâmetros
reflect = function(){
return arguments[0];
}
console.log(reflect(“Hi!”)); //“Hi!"
console.log(reflect(“Hi!”,25)); //“Hi!”
console.log(reflect.lenght); // 0
Exemplo 3 - parâmetros
function soma(){
var result = 0, i = 0;
var len = arguments.length;
while(i < len){
result += arguments[i];
i++;
}
return result;
}
console.log(soma(1,2)); //3
console.log(soma(3,4,5,6)); //18
console.log(soma(50)); //50
console.log(soma()); //0
Sobrecarga de funções
function soma(){
var result = 0, i = 0;
var len = arguments.length;
while(i < len){
result += arguments[i];
i++;
}
return result;
}
console.log(soma(1,2)); //3
console.log(soma(3,4,5,6)); //18
console.log(soma(50)); //50
console.log(soma()); //0
Sobrecarga de funções
</script>
<body>
<button type=”button” onclick=”funcaoExterna( )”>Executar função
externa</button><br />
<button type=”button” onclick=”funcaoInterna( )”>Executar função
interna</button>
</body>
Closures
<script type=”text/javascript”>
function funcaoExterna( ){
alert(“Função externa”); Como a função interna foi chamada
function funcaoInterna( ){ dentro da função externa, é executada
alert(“Função interna”); normalmente
};
funcaoInterna();
};
</script>
<body>
<button type=”button” onclick=”funcaoExterna( )”>Executar função
externa</button><br />
</body>
Closures
<script type=”text/javascript”>
function funcaoExterna( ){
alert(“Função externa”);
function funcaoInterna( ){ As duas funções são executadas
alert(“Função interna”); normalmente
};
variavelGlobal = funcaoInterna;
};
</script>
<body>
<button type=”button” onclick=”funcaoExterna( )”>Executar função
externa</button><br />
<button type=”button” onclick=”variavelGlobal( )”>Executar função
interna</button>
</body>
Funções Globais
• Funções que não estão associadas a um
objeto particular da linguagem.
• eval(código): executar um script inserido no argumento
código;
• isFinite(valor): testa um valor passado como argumento da
função. True se for número ou false caso contrário;
• isNaN(valor): testa um valor passado como argumento da
função. True se não for um número e falso caso contrário.
• Number(valor): converte em um
número o valor passado como
argumento da função.
• parseFloat(string [,base]): converte em
um número o valor passado como
argumento da função. Admite um
argumento opcional que é a base na
qual o número deverá ser retornado.
Quebrando uma
declaração de return
É um comportamento JavaScript padrão para fechar uma instrução
automaticamente no final de uma linha. Devido a isso, esses dois
exemplos retornarão o mesmo resultado
function myFunction(a) { function myFunction(a) {
var power = 10 var
return a * power power = 10;
} return
function myFunction(a) { a * power;
var power = 10; }
return a * power; function myFunction(a) {
} var
function myFunction(a) { power = 10;
var return;
power = 10; a * power;
return a * power; }
}
Isso acontece porque encerramento (término) de declarações com ponto-e-vírgula é
opcional em JavaScript. O JavaScript fechará a declaração de retorno no final da linha,
porque é uma declaração completa. Obs: Nunca quebre uma declaração de retorno.
Exercícios