Uma função JavaScript não executa qualquer verificação em valores de parâmetros (argumentos).
Function Parameters e Arguments
Anteriormente, neste tutorial, você aprendeu que as funções podem ter parameters :
functionName ( parameter1, parameter2, parameter3 ) {
code to be executed
}
Function parameters são os nomes listados na definição da função.
Function arguments são os valores reais passados para (e recebidos pela) a função.
Regras de parâmetro
definições de função JavaScript não especificar os tipos de dados para os parâmetros.
funções JavaScript não executar verificação de tipo sobre os argumentos passados.
funções JavaScript não verificar o número de argumentos recebidos.
Padrões de parâmetros
Se uma função é chamado com argumentos ausentes (menos do que o declarado), os valores em falta são definidas como: indefinido
Às vezes, isso é aceitável, mas às vezes é melhor para atribuir um valor padrão para o parâmetro:
Se a função é chamada com muitos argumentos (mais do que o declarado), esses argumentos podem ser alcançadas usando os argumentos objeto.
O objeto arguments
funções JavaScript tem um built-in objeto chamado objeto de argumentos.
O objeto argumento contém uma matriz dos argumentos usados quando a função foi chamada (chamada).
Desta forma, você pode simplesmente usar uma função para encontrar (por exemplo) o maior valor em uma lista de números:
Exemplo
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
var i;
var max = -Infinity;
for (i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
Tente você mesmo " Ou criar uma função para somar todos os valores de entrada:
Exemplo
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
var i, sum = 0;
for (i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
Tente você mesmo " Argumentos são passados por valor
Os parâmetros, em uma chamada de função, são argumentos da função.
Argumentos JavaScript são passados por valor: A função só começa a conhecer os valores, e não locais do argumento.
Se uma função altera o valor de um argumento, isso não muda o valor original do parâmetro.
Alterações aos argumentos não são visíveis (refletido) fora da função.
Os objetos são passados por referência
Em JavaScript, referências de objeto são valores.
Devido a isso, os objetos irão se comportar como eles são passados por referência:
Se uma função altera uma propriedade do objeto, ele altera o valor original.
Alterações de se opor propriedades são visíveis (refletido) fora da função.