Maison > interface Web > js tutoriel > Tutoriel sur la définition de paramètres formels dans une fonction mais sans transmission de paramètres réels

Tutoriel sur la définition de paramètres formels dans une fonction mais sans transmission de paramètres réels

零下一度
Libérer: 2017-06-25 09:19:28
original
2806 Les gens l'ont consulté

1. Définir des paramètres formels dans une fonction mais ne pas transmettre de paramètres réels équivaut à définir une variable mais ne pas attribuer de valeur, donc a dans ce qui suit n'est pas défini

1 function test(a){2     console.log(a)//undefined3 };4 test();
Copier après la connexion

2. Dans IIFE, la fenêtre est passée en tant que paramètre réel, ce qui évite de rechercher la fenêtre globalement à chaque fois lors de l'exécution du code, améliorant ainsi l'efficacité. Mais pourquoi undefined est-il spécifié dans le paramètre formel ? ci-dessus Définir un paramètre formel dans une fonction équivaut à le définir mais à ne pas lui attribuer de valeur, donc indéfini est toujours indéfini dans cette fonction immédiatement exécutée. Par conséquent, même si la valeur de undefined est modifiée globalement, cela n'affectera pas le undefined dans cette fonction auto-exécutable. Cependant, dans Chrome 59 et versions ultérieures, et Firefox 53 et versions ultérieures, la modification d'undefined n'est pas autorisée, ni dans toutes les sorties. est indéfini. Sous IE8, les valeurs non définies peuvent être modifiées et la sortie est 8 et indéfinie, donc le passage de paramètres formels peut garantir dans la plus grande mesure l'impact des variables modifiées en externe sur la fonction interne dans divers navigateurs. Il doit y avoir des parenthèses avant IIFE sinon une erreur sera signalée.

1 //在ie8中2 var undefined = 8;3 (function( window , undefined ){4     console.log(window.undefined) //85     console.log(undefined); //undefined6 })(window);
Copier après la connexion
//在chrome和Firefox中var undefined = 8;
(function( window , undefined ){
    console.log(window.undefined) //undefinedconsole.log(undefined); //undefined})(window)
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal