Expressions de fonctions JavaScript (tutoriel graphique)
Cet article présente principalement l'explication détaillée et des exemples d'expressions de fonctions JavaScript. Les amis dans le besoin peuvent se référer à
Expressions de fonctions JavaScript
1.
Il existe deux façons de définir une fonction : l'une est une déclaration de fonction et l'autre est une expression de fonction
1.1 Déclaration de fonction
function functionName(arg){ //函数体 }
Concernant la déclaration de fonction, l'une de ses caractéristiques importantes est la promotion de la déclaration de fonction, ce qui signifie que la déclaration de fonction sera lue avant d'exécuter le code. Cela signifie que la fonction peut être placée après l'instruction qui l'appelle. Comme indiqué ci-dessous :
helloworld(); //在代码执行之前会先读取函数声明 function helloworld(){ console.log("hello world"); }
1.2 Expression de fonction
var functionName=function(arg){ //函数体 }
Ceci Le formulaire ressemble à une instruction d'affectation de variable classique, qui crée une fonction et l'attribue à la variable functionName. La fonction créée dans ce cas est appelée fonction anonyme. Parce qu'il n'y a pas d'identifiant après le mot-clé function.
Les expressions de fonction, comme les autres expressions, doivent se voir attribuer une valeur avant utilisation ; le code suivant provoquera une erreur ;
helloworld(); //错误,还未赋值,函数不存在 var helloworld=function(){ console.log("hello world"); }
Avec les expressions de fonction, nous pouvons attribuer dynamiquement des valeurs aux expressions de fonction ; comme indiqué dans le code suivant :
var helloworld; //声明 if(condition){ //条件 helloworld=function(){ //赋值 console.log("hello world"); } } else{ helloworld=function(){ //赋值 console.log("你好,世界"); } }
2. Fonctions récursives
Une fonction récursive est formée lorsqu'une fonction s'appelle par son nom (comme C# et d'autres langages, donc l'idée de base du programme est similaire, mais il existe quelques différences de syntaxe. Bien apprendre une langue (les bases, il sera beaucoup plus facile d'apprendre d'autres choses). Prenez une question d'entretien récursive classique. Les règles pour une série de nombres sont les suivantes : 1, 1, 2, 3, 5, 8, 13, 21, 34... Trouver le 30ème chiffre : Combien, implémenté à l'aide d'un algorithme récursif, le code est le suivant :
function foo(n) { if (n <= 0) return 0; else if (n > 0 && n <= 2) return 1; else return foo(n - 1) + foo(n - 2); }
Bien que cette fonction montre qu'il ne semble y avoir aucun problème, le code suivant peut provoquer des erreurs It :
var foo1 = foo; foo = null; console.log(foo1(34));
Le code ci-dessus enregistre d'abord la fonction foo() dans le variable foo1, puis définit la variable foo sur null et le résultat pointe vers la fonction d'origine. Il ne reste qu'une seule référence. Mais lorsque foo1() est appelé ensuite, puisque foo() doit être exécuté et foo est déjà nul, une erreur se produira dans ce cas, l'utilisation de arguments.callee peut résoudre ce problème ; arguments.callee est un pointeur vers la fonction en cours d'exécution, vous pouvez donc l'utiliser pour implémenter des appels récursifs aux fonctions
function foo(n) { if (n <= 0) return 0; else if (n > 0 && n <= 2) return 1; else return arguments.callee(n - 1) + arguments.callee(n - 2); }
Vous pouvez également utiliser des fonctions nommées expression pour obtenir le même résultat. Par exemple :
var foo = (function f(n) { if (n <= 0) return 0; else if (n > 0 && n <= 2) return 1; else return f(n - 1) + f(n - 2); });
3. Fermeture
3.1 La fermeture désigne le droit d'accéder à une autre fonction Une commune La façon de créer des fermetures est de créer une fonction à l’intérieur d’une autre fonction. Pour comprendre les fermetures, vous devez d'abord comprendre la portée des variables spéciales JavaScript. La portée des variables n'est rien de plus que deux types, les variables globales et les variables locales ; écrivons quelques démos pour l'exprimer intuitivement
lisons directement les variables globales à l'intérieur de la fonction :
var n = 100; //定义一个全局变量 function fn() { console.log(n); //函数内部直接读取全局变量 } fn();
Les variables locales ne peuvent pas être lues directement en dehors de la fonction :
function fn() { var n = 100; } console.log(n); //n is not defined
Il y a quelque chose à noter ici, Lorsque vous déclarez des variables à l'intérieur d'une fonction, assurez-vous d'utiliser var. Si elle n'est pas utilisée, elle deviendra une variable globale :
function fn() { n = 100; } fn(); console.log(n); //100
Parfois, nous en avons besoin. pour obtenir les variables déclarées à l'intérieur de la fonction, vous pouvez donc utiliser la méthode courante de création de fermetures mentionnée ci-dessus pour créer une autre fonction à l'intérieur de la fonction :
function fn() { n = 100; function fn1() { console.log(n); } fn1(); } fn(); //100
ci-dessus Dans le code, la fonction fn1 est incluse dans la fonction fn. À ce stade, toutes les variables locales à l'intérieur de fm sont visibles par fn1. Mais l'inverse ne fonctionne pas. Les variables locales à l'intérieur de fn1 sont invisibles pour fn. Il s'agit de la structure unique de « portée de chaîne » du langage Javascript. L'objet enfant recherchera les variables de tous les objets parents niveau par niveau. Par conséquent, toutes les variables de l’objet parent sont visibles par l’objet enfant, mais l’inverse n’est pas vrai.
Il s'avère que fn1 peut lire les variables internes de fn, donc tant que fn1 est utilisé comme valeur de retour, nous pouvons lire les variables de fn en externe
function fn() { n = 100; function fn1() { console.log(n); } return fn1; } var result=fn(); result(); //100
Ici fn1 est une fermeture, et une fermeture est une fonction qui peut lire les variables internes d'autres fonctions. Puisque dans le langage Javascript, seules les sous-fonctions d'une fonction peuvent lire les variables locales, les fermetures peuvent être simplement comprises comme des « fonctions définies à l'intérieur d'une fonction ». Ainsi, par essence, la fermeture est un pont reliant l’intérieur de la fonction à l’extérieur de la fonction.
3.2 Le but de la fermeture
Elle a deux utilisations principales L'une est de lire les variables à l'intérieur de la fonction comme mentionné précédemment, et l'autre est de conserver les valeurs de ces variables à. en mémoire. Comme indiqué dans le code suivant :
function fn() { n = 100; nadd = function () { n += 1; } function fn1() { console.log(n); } return fn1; } var result = fn(); result(); //100 nadd(); result(); //101
注意:由于闭包函数会携带包含它的函数的作用域,因此会比其他函数占用更多的内存,过度使用闭包可能会导致内存占用过多,所以在退出函数之前,将不使用的局部变量全部删除。
四、块级作用域
块级作用域(又称为私有作用域)的匿名函数的语法如下所示:
(function(){ //块级作用域 })();
无论在什么地方,只要临时需要一些变量,就可以使用私有作用域,比如:
(function () { var now = new Date(); if (now.getMonth() == 0 && now.getDate() == 1) { alert("新年快乐"); } })();
把上面这段代码放到全局作用域中,如果到了1月1日就会弹出“新年快乐”的祝福;这种技术经常在全局作用域中被用在函数外部,从而限制向全局作用域中添加过多的变量和函数。一般来说,我们都应该尽量少向全局作用域中添加变量和函数。在一个由很多开发人员共同参与的大型应用程序中,过多的全局变量和函数很容易导致命名冲突。而通过创建私用作用域,每个开发人员既可以使用自己的变量,又不必担心搞乱全局作用域。
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

Outils essentiels pour l'analyse boursière : découvrez les étapes pour dessiner des graphiques en bougies en PHP et JS. Des exemples de code spécifiques sont nécessaires. Avec le développement rapide d'Internet et de la technologie, le trading d'actions est devenu l'un des moyens importants pour de nombreux investisseurs. L'analyse boursière est une partie importante de la prise de décision des investisseurs, et les graphiques en bougies sont largement utilisés dans l'analyse technique. Apprendre à dessiner des graphiques en bougies à l'aide de PHP et JS fournira aux investisseurs des informations plus intuitives pour les aider à prendre de meilleures décisions. Un graphique en chandeliers est un graphique technique qui affiche les cours des actions sous forme de chandeliers. Il montre le cours de l'action

La technologie de détection et de reconnaissance des visages est déjà une technologie relativement mature et largement utilisée. Actuellement, le langage d'application Internet le plus utilisé est JS. La mise en œuvre de la détection et de la reconnaissance faciale sur le front-end Web présente des avantages et des inconvénients par rapport à la reconnaissance faciale back-end. Les avantages incluent la réduction de l'interaction réseau et de la reconnaissance en temps réel, ce qui réduit considérablement le temps d'attente des utilisateurs et améliore l'expérience utilisateur. Les inconvénients sont les suivants : il est limité par la taille du modèle et la précision est également limitée ; Comment utiliser js pour implémenter la détection de visage sur le web ? Afin de mettre en œuvre la reconnaissance faciale sur le Web, vous devez être familier avec les langages et technologies de programmation associés, tels que JavaScript, HTML, CSS, WebRTC, etc. Dans le même temps, vous devez également maîtriser les technologies pertinentes de vision par ordinateur et d’intelligence artificielle. Il convient de noter qu'en raison de la conception du côté Web

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

Avec le développement rapide de la finance sur Internet, l'investissement en actions est devenu le choix de plus en plus de personnes. Dans le trading d'actions, les graphiques en bougies sont une méthode d'analyse technique couramment utilisée. Ils peuvent montrer l'évolution des cours des actions et aider les investisseurs à prendre des décisions plus précises. Cet article présentera les compétences de développement de PHP et JS, amènera les lecteurs à comprendre comment dessiner des graphiques en bougies boursières et fournira des exemples de code spécifiques. 1. Comprendre les graphiques en bougies boursières Avant de présenter comment dessiner des graphiques en bougies boursières, nous devons d'abord comprendre ce qu'est un graphique en bougies. Les graphiques en chandeliers ont été développés par les Japonais

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest
