


Comment les déclarations de fonction se comportent-elles dans les instructions if/else en JavaScript ?
Nov 03, 2024 am 01:58 AMDéclarations de fonctions dans les instructions if/else
Lorsque des déclarations de fonctions sont rencontrées dans des instructions if/else, leur traitement peut varier en fonction du JavaScript environnement. Dans l'extrait de code fourni, les déclarations de fonction sont définies à l'intérieur de chaque branche if/else :
var abc = ''; if (1 === 0) { function a() { abc = 7; } } else if ('a' === 'a') { function a() { abc = 19; } } else if ('foo' === 'bar') { function a() { abc = 'foo'; } } a(); document.write(abc); // Expected output: foo
Sous ECMAScript 5 (ES5), en mode non strict, le code ci-dessus présente un comportement imprévisible. Différents navigateurs et moteurs gèrent différemment les déclarations de fonctions dans les blocs.
Cependant, dans ECMAScript 2015 (ES2015) et versions ultérieures, les déclarations de fonctions sont autorisées dans les blocs. Les déclarations de fonctions dans ces blocs sont limitées au bloc. Dans l'extrait de code, la fonction a est déclarée dans le bloc if le plus interne. Par conséquent, il n'est pas défini dans la portée globale, entraînant une erreur de fonction non définie :
if ('foo' === 'bar') { function a() { abc = 'foo'; } } a(); // Error: a is not defined
Pour la définition de fonction conditionnelle, il est recommandé d'utiliser des expressions de fonction au lieu de déclarations :
var a = 'foo' === 'bar' ? function() { abc = 'foo'; } : function() { abc = 19; }; a(); document.write(abc); // Expected output: 19
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

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)

Sujets chauds

Remplacer les caractères de chaîne en javascript

Tutoriel de configuration de l'API de recherche Google personnalisé

8 Superbes plugins de mise en page JQuery Page

Créez vos propres applications Web Ajax

Qu'est-ce que & # x27; ceci & # x27; en javascript?
