Maison >interface Web >js tutoriel >L'ordre d'analyse et d'exécution de Javascript est différent selon les compétences de browsers_javascript

L'ordre d'analyse et d'exécution de Javascript est différent selon les compétences de browsers_javascript

WBOY
WBOYoriginal
2016-05-16 16:55:241344parcourir

Introduction

Javascript est un langage interprété et son exécution est descendante. Cependant, chaque navigateur a une compréhension légèrement différente du « top-down », et l'amont et l'aval du code, c'est-à-dire le déroulement du programme, sont cruciaux pour le bon fonctionnement du programme. Nous devons donc comprendre en profondeur l’ordre d’exécution de js. À cette fin, j'ai conçu les huit expériences suivantes pour obtenir les résultats les plus précis.

Expérience

Copier le code Le code est le suivant :

< script type= "text/javascript">
//Expérience 1 :
fonction t(a)
{
alert("[t(a)]a:" }
fonction t(a, b)
{
alert("[t(a, b)]a:" a ", b:" b);
}
t); (1) ;
//Résultat :
//[t(a, b)]a:1, b:undefined

//Expérience 2 :
fonction t(a, b)
{
alert("[t(a, b)]a:" a ", b:" b);
}
fonction t(a)
{
alert( "[t(a)]a:" a);
}
t(1);
//Résultat :
//[t(a)]a:1

//Expérience 3 :
fonction t(a)
{
alert("[t(a)]a:"
}
fonction t( a, b )
{
alert("[t(a, b)]a:" a ", b:" b);
t(1, 2); >// Résultat :
//[t(a, b)]a:1, b:2

//Expérience 4 :
fonction t(a, b)
{
alert("[t(a, b)]a:" a ", b:" b);
}
fonction t(a)
{
alert("[t (a) ]a:" a);
}
t(1, 2);
//Résultat :
//[t(a)]a:1

// Expérience 5
fonction t(a)
{
alert("[t(a)]a:"
}
t(1); function t( a, b)
{
alert("[t(a, b)]a:" a ", b:" b); >// [t(a, b)]a:1, b:undefined

//Expérience 6
fonction t(a)
{
alert("[t(a )]a :" a);
}
t(1, 2);
fonction t(a, b)
{
alert("[t(a, b)] a:"a", b:"b);
}
//Résultat :
//[t(a, b)]a:1, b:2

/ /Expérience 7
fonction t(a, b)
{
alert("[t(a, b)]a:" a ", b:" b);
}
t(1 );
fonction t(a)
{
alert("[t(a)]a:"
}
//Résultat :
/ /[t (a)]a:1

//Expérience 8
fonction t(a, b)
{
alert("[t(a, b)]a: " a " , b:" b);
}
t(1, 2);
fonction t(a)
{
alert("[t(a)]a: " a) ;
}
//Résultat :
//[t(a)]a:1




Post-scriptum

Lors de la définition d'une fonction JavaScript, le nom de la fonction est l'identifiant de l'objet fonction, et le nombre de paramètres n'est qu'un attribut de la fonction. Il n'est pas possible d'implémenter une surcharge en définissant des fonctions avec un nombre de paramètres différent.
Lors de l'appel d'une fonction, js trouve l'objet fonction correspondant via le nom de la fonction, puis fait correspondre la liste des paramètres d'expression dans l'ordre en fonction des paramètres lorsque la fonction est définie. Les paramètres redondants sont ignorés et les paramètres insuffisants sont traités. comme indéfini, puis la fonction est exécutée du code.

Ainsi, lors de la définition d'une fonction, les paramètres requis sont généralement placés au début de la liste des paramètres, et les paramètres facultatifs sont placés après les paramètres requis.

Notes

1. Les résultats des huit expériences ci-dessus sont obtenus via le navigateur 360 (version/noyau : 6.3.1.142/21.0.1180.89) et le navigateur Firefox (version : 27.0.1). est obtenu en courant.
2. Les huit expériences ci-dessus sont indépendantes les unes des autres. Veuillez les exécuter séparément pour obtenir des résultats corrects.
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