Vamos dar um exemplo primeiro. A função desta função é retornar a soma dos elementos do array
function sumArray(arr) {;
var soma = 0; for(var i = 0,aLength = arr.length;i < aLength;i++) { soma += arr[i]; } return sum }
Há um espaço após a palavra-chave function
. sumArray
é o nome da função. Sua convenção de nomenclatura é a mesma dos nomes de variáveis: ela só pode conter letras, números, sublinhados e cifrões. um número e não pode ser uma palavra-chave.
Os parâmetros entre parênteses, também chamados de parâmetros formais , requerem apenas o nome do parâmetro. Os parâmetros podem ser 0
, 1
ou mais, separados por ,
e {}
contém o corpo da função . Contém uma ou mais instruções. O corpo da função é usado para implementar a função da função.
A palavra-chave return
é seguida pelo valor de retorno da função, e a função também pode não ter valor de retorno. Depois que a função terminar de ser executada, a instrução " return
sairá da execução e a instrução abaixo de return
não será mais executada . O valor de retorno é a saída da função.
Uma função definida desta forma pode ser chamada antes e depois da definição da função , desde que a função e a instrução que chama a função estejam no mesmo arquivo fonte.
para definir uma função usando uma expressão, que consiste em usar uma expressão de atribuição para atribuir a função a uma variável . Neste momento, a função pode ter um nome ou nenhum nome. Uma função sem nome é chamada de função anônima .
var funct = function getMax(a,b) { return a>b?a:b };//Observe que o ponto e vírgula depois disso não pode faltar, pois estamos definindo uma variável!
Diferente de defini-la com uma instrução de função , a função só pode ser chamada após a instrução de definição da função! . E ao chamar, apenas o nome da variável funct
pode ser usado, e o nome da função getMax
não pode ser usado, como:
var funct = function getMax(a,b) {. retornar a>b?a:b; }; console.log(funct(1,2));//Saída 2
function
:var funct = function(a,b) { return a>b?a:b };
Esta função não tem nome. Ela é atribuída à variável funct
, portanto é chamada de função anônima. Da mesma forma, esta função só pode ser chamada após esta instrução.
var função = função(a,b) { return a>b?a:b }; console.log(funct(1,2));//
Resumo da saída 2: Definir uma função com uma expressão pode ser usada imediatamente. ser usado nesta instrução Em seguida, chame a função
No quarto treinamento, introduzimos que os objetos podem ter seus próprios métodos, é claro que isso também é uma função. A chamada desta função é ligeiramente diferente das funções definidas nos dois níveis anteriores.
//Definição da função: encontre o valor máximo de três números function max(a,b,c) { se(a > b) { se(uma > c) retornar um; outro retornar c; } outro { se(b > c) retornarb; outro retornar c; } } //Chame esta função var result = max(1,2,3);//resultado é 3 console.log(result);//Saída 3
Ao chamar a função, você precisa passar o mesmo número de valores específicos que os parâmetros formais. A função acima possui 3
parâmetros, portanto, ao chamar abaixo, passe 3
específicos. valores , 1
é passado para o parâmetro a
, 2
é passado para o parâmetro b
3
é passado para o parâmetro c
. O valor de retorno da função é passado para a variável result
através do símbolo de atribuição =
. Se não houver palavra-chave return
no corpo da função, será retornado undefined
.
Chamando funções definidas no objeto:
var ob = { identificação:1, getMax:função(a,b) { retornar a>b?a:b; } }; var result = ob.getMax(2,1);//O valor do resultado é 2 var result1 = ob["getMax"](2,1);//O valor de result1 também é 2.
A diferença de o acima é que aqui Para localizar uma função, você precisa usar对象名.函数名
ou对象名["函数名"]
, os outros são iguais.
Na maioria das linguagens de programação, o número e o tipo dos parâmetros reais passados ao chamar uma função são verificados, mas JavaScript
não verifica o tipo nem o número dos parâmetros reais.
Os parâmetros reais em JavaScript
corresponderão aos parâmetros formais da esquerda para a direita , por exemplo:
function myFunction(a,b,c) { console.log(a); console.log(b); console.log(c); } myFunction(1,2,3);
O parâmetro real 1
é passado para o parâmetro formal a
, o parâmetro real 2
é passado para o parâmetro formal b
e o parâmetro real 3
é passado para o parâmetro real. parâmetro formal c
. Quando o número de parâmetros reais for menor que os parâmetros formais, o valor undefined
será passado para o parâmetro formal correto. Por exemplo:
function minhaFunção(a,b,c) { console.log(a); console.log(b); console.log(c); } myFunction(1,2);
O parâmetro real 1
é passado para o parâmetro formal a
, o parâmetro real 2
é passado para o parâmetro formal b
e undefined
passado para o parâmetro formal c
. Se você deseja apenas passar dados para os parâmetros à direita, você pode passar undefined
para os primeiros parâmetros reais. Por exemplo:
function myFunction(a,b,c){ console.log(a); console.log(b); console.log(c)
; rigoroso o suficiente, a prática recomendada é definir um valor padrão para parâmetros formais que podem receber valores undefined
. Por exemplo:
função getSoma(a,b,c) { se(c === indefinido) c = 0; console.log(a+b+c); } myFunction(1,2);
Tudo JavaScript
é um objeto, e o parâmetro real também é um objeto . arguments
pode ter um nome especial. ser considerado como uma matriz. (semelhante a uma matriz, não uma matriz real), os parâmetros reais são arguments[0]、arguments[1]...
da esquerda para a direita, arguments.length
representa o número de parâmetros reais.
//Encontre a soma dos parâmetros function getSum() { var aLength = argumentos.comprimento; var soma = 0; for(var i = 0;i < aLength;i++) { soma += argumentos[i]; } return sum; } console.log(getSum(1,2,3,4,5))//Saída 15.
Os parâmetros formais aqui são omitidos diretamente e representados por arguments[i]
.
JavaScript
complexas
Os desenvolvedores precisam verificar a correspondência entre cada parâmetro real e o parâmetro formal, o que é muito ineficiente. Uma boa solução é usar um objeto como parâmetro, e a função operará no parâmetro com base no nome da propriedade do objeto.
função minhaFunção(obj) { console.log(obj.nome); obj.número++; return obj.number; } myObj = {name:"myObj",number:34}; myFunction(myObj);//Saída myObj console.log(myObj.number);//Saída 35
uma função (chamada a
função por conveniência de escrita) podem ser usados como parâmetros de outra função (chamada de função b
), e a função b
pode finalmente retornar um valor específico.
Em princípio, a função b
chama a função a
em seu próprio corpo de função, portanto, o nome da função a
precisa ser passado para a função b
como um parâmetro real. Como segue:
//Encontre o valor máximo function getMax(a,b) { return a>b?a:b } //Encontre o valor mínimo function getMin(a,b) { return a<b?a:b } //A função a seguir recebe uma função como parâmetro e finalmente retorna um valor function getM(func,num1,num2) { return func(num1,num2 } getM(getMax,1,2);//Return 2 getM(getMin,1,2);//Return 1
Passamos o nome da função a
( getMax
ou getMin
) para a função b
( getM()
) e, em seguida, chame a a
a passada dentro da função b
para obter os resultados relevantes.