Maison  >  Article  >  interface Web  >  Analyse approfondie des fonctions JS

Analyse approfondie des fonctions JS

php中世界最好的语言
php中世界最好的语言original
2018-03-08 15:31:101647parcourir

Cette fois, je vais vous apporter une analyse approfondie des fonctions JS. Quelle est la différence entre la déclaration de fonction et l'expression de fonction ? Quelles sont les précautions d'utilisation des fonctions JS ? Ce qui suit est un cas pratique, regardons-y.

Quelle est la différence entre la déclaration de fonction et l'expression de fonction (*)

Déclaration de fonction : function bar() {}
Expression de fonction : var fuc = foo(){}
1. La barre de fonctions sera levée avant que l'ensemble du programme ne soit exécuté, elle est donc disponible dans toute la portée de la fonction de barre spécifiée. Il n'y a aucun problème même s'il est appelé avant que la fonction ne soit définie.
2. Pour les déclarations de fonction, le nom de la fonction est requis, mais pour les expressions de fonction, il est facultatif. Par conséquent, les expressions de fonction anonymes et les expressions de fonction nommées apparaissent.
3 Dans cette fonction

var foo = function bar() {
bar(); // Works};
bar(); // ReferenceError命名函数bar赋值给了变量foo,所以在函数声明外是不可见的,但在bar`函数内部仍然可以调用。这是因为Javascript对命名函数处理的机制,函数的名称永远在函数内部的作用域中有效。

Quel est le préfixe de déclaration d'une variable ? Qu'est-ce que le préfixe de déclaration de fonction (**)

Le préfixe de déclaration de variable signifie que dans un bloc de portée, toutes les variables sont déclarées au début du bloc. Voici un exemple de trois morceaux de code :
Code 1 :

var a = 1;
function main() {
console.log(a);//1
}
main();//输出1`

Code 2 :

1 var a = 1;
2 function main() {
3  console.log(a);
4 var a = 2;
5 }
6 main()//输出undefined

Code 3 : Pourquoi le code 2 sortie non définie

1 var a = 1;
2 function main() {
3 var a;
4  console.log(a);
5 a = 2;
6 }

La déclaration d'une fonction devant consiste à promouvoir la fonction entière au premier plan de la portée actuelle (derrière la déclaration de variable précédente).

var num = 1;
console.log(doubleNum(num));//2
function doubleNum(num){ return num2;}

est équivalent à

//函数的声明前置
var num;
function doubleNum(num){ return num2;}
num = 1;
console.log(doubleNum(num));//2

arguments Qu'est-ce que (*)

arguments est un objet de type tableau. Représente la liste de paramètres transmise à une fonction. Tous les paramètres d'une fonction peuvent être obtenus à l'intérieur de la fonction en utilisant l'objet arguments. Cet objet crée une entrée pour chaque paramètre passé à la fonction, avec des entrées indexées à partir de 0.

Comment implémenter la surcharge des fonctions (**)

peut être implémenté à travers la longueur des arguments et le type de paramètres. Exemple :

function sumOfSquares(a, b, c){
if(arguments.length<3){
c = 0;
}
return aa+bb+c*c
}
sumOfSquares(2,3,4);   // 29
sumOfSquares(1,3);   // 10

Quelle est l'expression de la fonction d'exécution immédiate ? A quoi ça sert ? (***)

L'exécution immédiate des fonctions s'écrit généralement des deux manières suivantes :
(function(){...})();
(function (){ .. .}());//Il est recommandé d'utiliser
En Javascript, une paire de parenthèses "()" est un opérateur, suivant le nom de la fonction, indiquant que la fonction est appelée.
Référence - Fonction d'exécution immédiate en JavaScript

Quelle est la chaîne de portée d'une fonction (****)

La portée est la portée accessible des variables et des fonctions, contrôlant les variables et le visibilité et cycle de vie des fonctions. La portée des variables en JavaScript a une portée globale et une portée locale.
Une chaîne de portée est une chaîne de portée (non appelée sc) d'objets variables qui est créée lorsque le code est exécuté dans un environnement pour garantir un accès ordonné aux variables et aux fonctions auxquelles l'environnement d'exécution a accès. Le premier objet dans la portée est toujours l'objet variable (VO) de l'environnement où se trouve le code en cours d'exécution

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez faire attention aux autres articles connexes sur le site Web PHP chinois !

Lecture connexe :

Comment créer une boîte de connexion avec CSS3

Fonction mathématique de chaîne de tableau JavaScript

JS Dom et résumé de l'événement

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn