A função de palavra -chave é usada para definir uma função.
A cópia do código é a seguinte:
// Definição declarativa da função:
function funcname ([arg1 [, args [..., argn]]]) {
declarações
}
// Definição da expressão da função:
var funcname = function ([arg1 [, args [..., argn]]]) {
declarações
};
Observe que são necessários aparelhos encaracolados nas instruções de função, mesmo que o corpo da função contenha apenas uma instrução.
No JavaScript, as funções são instâncias específicas da classe de função. E todos eles têm propriedades e métodos como outros tipos de referência.
O nome da função é na verdade um ponteiro para o objeto de função, e a função pode ser usada como um parâmetro para participar do valor de transferência de parâmetros e retorno.
Propriedades do objeto de funções
Como uma função é uma instância de uma função, o nome da função é apenas um endereço de referência dessa instância. Portanto, ele pode ser usado como parâmetros e retorna valores no processo de transferência de parâmetros da função.
A cópia do código é a seguinte:
Função call_wome_function (alguma_function, algum_argument) {
return some_function (algum_argument);
}
função add_10 (num) {
retornar num + 10;
}
console.log (call_wome_function (add_10,20)); // 30
Propriedades internas de uma função
argumentos | esse
• O objeto de argumentos mantém os parâmetros passados para a função
• Argumentos.Length Retorna o número de parâmetros de entrada
• Nota: o atributo de comprimento representa o número de parâmetros recebidos por padrão quando a função é definida. Argumentos.Length representa o número de parâmetros recebidos quando a função é realmente executada.
A cópia do código é a seguinte:
function test_arguments () {
if (argumentos.Length == 2) {
console.log (argumentos.length);
console.log (argumentos);
} outro {
console.log (argumentos.length);
console.log (argumentos);
argumentos.Callee (4, 5);
};
} (1, 2, 3)
/**
3
{'0': 1, '1': 2, '2': 3}
2
{'0': 4, '1': 5}
**/
• Argumentos.callee () é usado principalmente na situação em que a própria função é chamada em funções recursivas. A diferença entre JS e outros idiomas é que o nome da função é apenas um ponteiro e pode ser alterado a qualquer momento. O nome da função na função é altamente acoplado, o que pode causar problemas, e a chamada aos argumentos.callee () em si evitará esse problema.
A cópia do código é a seguinte:
função fatorial (num) {
if (num <= 1) {
retornar 1;
} outro {
retornar num * fatorial (num - 1);
};
}
função callee_f (num) {
if (num <= 1) {
retornar 1;
} outro {
retornar num * argumentos.callee (num - 1);
};
}
fatorial (10); // opera normal
f = fatorial;
fatorial = nulo;
f (10); //erro
callee_f (10); // opera normalmente
f = callee_f;
callee_f = null;
f (10); // opera normal
• Isso é usado principalmente para ajudar as funções a se referirem a objetos no escopo da função.
A cópia do código é a seguinte:
var color = 'vermelho';
função syacolor () {
console.log (this.color);
}
syacolor (); //vermelho
var o = new Object ();
o.color = 'azul';
O.SayColor = SayColor;
O.SayColor (); //azul
ligue () e aplique ()
Call () e Apply () são métodos próprios que cada função contém. Foi mencionado antes que as funções sejam objetos definidos; portanto, ao chamar funções, isso na função é uma chamada para as variáveis atuais e inferiores. Se você deseja alterar o espaço do domínio em que a função é executada, pode usar Call () e Aplicar () para implementá -la.
A cópia do código é a seguinte:
color = 'vermelho';
var o = {color: 'Blue'};
function dizColor () {
console.log (this.color);
}
SayColor (); //vermelho
saycolor.call (this); //vermelho
SayColor.Call (O); //azul
As funções do app () e Call () são as mesmas, e a diferença é principalmente a diferença nos parâmetros de entrada.
Ligue para (isso, para1, prar2, prar3) O primeiro parâmetro é o escopo da função a ser executado. O parâmetro subsequente é o parâmetro de entrada da função e há tantas vezes escritas em sequência.
Aplicar (este, [para1, para2, prara3]) O primeiro parâmetro também é o escopo da função a ser executado, seguido por um objeto de matriz.
O maior benefício de usar Call ()/Apply () para expandir o escopo é a dissociação de objetos e métodos.
Objetos embutidos
Os objetos globais podem ser entendidos como o objeto mais externo, todos os objetos, bem como atributos e métodos que não pertencem a outros objetos estão incluídos no objeto global.
* isnan (x) é usado para verificar se o parâmetro x é um número. Se False for devolvido para um número, retorne true de outra forma
* isfinite (x) é usado para verificar se o parâmetro x é infinito/pequeno. Se for infinito/pequeno, retorna verdadeiro.
* Parseint (x) é usado para analisar cordas e retornar números inteiros
* parsefloat (x) é usado para analisar strings e retornar números de ponto flutuante
* Encodeuri () e Encodeuricomponent () executarão a codificação Special UTF-8 na sequência, evitando alguns caracteres especiais para o navegador entender. A principal diferença entre eles é que o codeuri () não codifica caracteres especiais que pertencem ao URI, enquanto o codeuricomponent () codifica todos os caracteres não padrão que encontra.
A cópia do código é a seguinte:
var uri = "http://www.wrox.com/illegal value.htm#start";
//http://www.wrox.com/illegal%20Value.htm#start
Console.log (Encodeuri (URI))
//http%3a%2f%2fwww.wrox.com%2fillegal%20Value.htm%23Start
Console.log (Encodeuricomponent (URI))
• As funções de decodificação correspondentes são decodeuri () e decodeuricomponent ()
• Eval (script) é usado para executar o conteúdo do script no intérprete e retornar o resultado correspondente. Muito poderoso!
Nota: No navegador, os objetos do Windows encapsulam objetos globais e realizam muitas tarefas e funções adicionais.
O objeto de matemática é outro objeto interno. Fornece funções de cálculo matemático para JavaScript.
O acima é tudo sobre este artigo. Espero que gostem e seja útil para você.