Javascript Faq

download Javascript Faq

of 93

Transcript of Javascript Faq

FAQ JavaScriptDate de publication : Dernire mise jour : 18/11/2011

Cette FAQ a t ralise pour rpondre aux questions les plus frquemment poses sur les forums JavaScript et AJAX. Nous tenons souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle contient sont correctes ; les auteurs font le maximum, mais l'erreur est humaine. Si vous trouvez une erreur, ou que vous souhaitez devenir rdacteur, lisez Comment participer cette FAQ ?. Sur ce, on vous souhaite une bonne lecture.

Ont contribu cette FAQ :

sekaijin - Daniel Hagnoul (Mon cahier d'exercices sur jQuery & Co) - vermine - SBSTP - nbarraille - L'quipe JavaScript (JavaScript) - hotline - gwyohm - FremyCompany - Auteur - trotters213 - Clment Cunin - neo.51 - simone.51 - Jrme - JBrek - BrYs - SpaceFrog - zazaraigne - Patrick Beaudoin - Celelibi - Javatwister - jeca Fabszn - javaEli - torvalds17 - denisC - siddh - Swog Erwy - Kerod - Bovino - DoubleU - Lcf.vs - gwinyam -

FAQ JavaScript

1. 2. 3. 4. 5. 6. 7. 8. 9.

Informations gnrales (4) .........................................................................................................................................................4 Introduction (8) .......................................................................................................................................................................... 5 Syntaxe JavaScript (16) .............................................................................................................................................................8 Les tableaux (l'objet Array) (6) ...............................................................................................................................................18 La gestion des dates (l'objet Date) (7) .................................................................................................................................... 22 La dtection des vnements (6) .............................................................................................................................................27 La gestion des fentres et des frames (14) ............................................................................................................................. 31 La navigation et le navigateur (20) .........................................................................................................................................36 Les formulaires (26) ................................................................................................................................................................ 42 9.1. Les champs des formulaires (11) ................................................................................................................................... 43 9.2. Les autres objets du formulaire (14) .............................................................................................................................. 48 10. Les tableaux (balise table) (3) ...............................................................................................................................................57 11. Les feuilles de style (6) .........................................................................................................................................................59 12. Les expressions rgulires (9) ............................................................................................................................................... 63 13. Les autres objets (10) ............................................................................................................................................................ 69 14. Utilisation du DOM (5) .........................................................................................................................................................74 15. Les technologies d'Ajax (12) .................................................................................................................................................77 16. Divers scripts utiles (17) ....................................................................................................................................................... 83

-3Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2004 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javascript.developpez.com/faq/javascript/

FAQ JavaScript

Sommaire > Informations gnrales Comment bien utiliser cette FAQ ?Auteurs : neo.51 , Le but : Cette FAQ a t conue pour tre la plus simple possible d'utilisation. Elle tente d'apporter des rponses simples et compltes aux questions auxquelles ont souvent t confronts les dveloppeurs Web en JavaScript. L'organisation : Les questions sont organises par thme, rendant la recherche plus facile. Les rponses : Les rponses peuvent tre compltes de liens vers d'autres rponses, vers la documentation en ligne de Microsoft ou vers un autre site en rapport. Nouveauts et mises jour : Lors de l'ajout ou de la modification d'une question/rponse, un indicateur est plac cot du titre de la question. Cet indicateur reste visible pour une dure de 15 jours afin de vous permettre de voir rapidement les modifications apportes. J'espre que cette FAQ pourra rpondre vos questions. N'hsitez pas nous faire part de tous commentaires/remarques/ critiques. lien : Comment participer cette FAQ ?

Comment participer cette FAQ ?Auteurs : neo.51 , Cette FAQ est ouverte toute collaboration. Pour viter la multiplication des versions, il serait prfrable que toute collaboration soit transmise aux administrateurs de la FAQ. Plusieurs comptences sont actuellement recherches pour amliorer cette FAQ : Rdacteur : Bien videmment, toute nouvelle question/rponse est la bienvenue. Correcteur : Malgr nos efforts, des fautes d'orthographe ou de grammaire peuvent subsister. Merci de contacter les administrateurs si vous en dbusquez une... Idem pour les liens errons. lien : Quels sont les droits de reproduction de cette FAQ ?

Quels sont les droits de reproduction de cette FAQ ?Auteurs : neo.51 , Merci de contacter les auteurs pour toute copie, intgrale ou partielle de ce document, voir Comment participer cette FAQ ?. lien : Comment participer cette FAQ ?

Nous tenons remercierAuteurs : simone.51 , Clment Cunin pour son travail sur la prsentation et la gnration de la FAQ Alacazam pour la correction de l'orthographe ;-). L'ensemble de l'quipe des rdacteurs de www.developpez.com pour leurs remarques constructives.

-4Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2004 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javascript.developpez.com/faq/javascript/

FAQ JavaScript

Sommaire > Introduction Qu'est-ce que le JavaScript ?Auteurs : sekaijin , simone.51 , gwinyam , JavaScript (ne pas confondre avec Java) est un langage interprt objet orient prototype. Il est principalement utilis sur le Web ct client. C'est--dire que c'est le navigateur qui excute le code. Au contraire des langages de requtes du style PHP ou ASP qui eux sont excuts ct serveur : le code que le serveur renvoie au navigateur n'est que du (X)HTML simple. Par consquent, le JavaScript est utile pour tout ce qui concerne les interactions du client sur la page Web. Il permet ainsi d'amliorer la prsentation et l'interactivit des pages Web. Mais il peut aussi tre utilis ct serveur. Il existe plusieurs dclinaisons du langage qui permettent de l'utiliser dans de nombreux domaines. lien : A quoi sert le JavaScript ?

Quel rapport entre JavaScript et ECMAScript ?Auteurs : sekaijin , JavaScript est ECMAScript ou presque. Un peu d'histoire ne fait pas de mal : Brendan Eich dveloppe initialement un langage de script ct serveur, appel LiveScript, pour le compte Mosaic Communications Corporation. Le National Center for Supercomputing Applications propritaire du nom Mosaic force Mosaic Communications Corporation changer de nom. Ainsi natra Netscape. cette poque Netscape et SUN collaborent pour porter LiveScript sur le navigateur. Ainsi sort en 1995 une nouvelle version du langage, la premire tre largement diffuse qui est alors baptis JavaScript. Netscape soumet son langage Ecma International pour en faire un standard. Des premires drafts du standard, Microsoft sort JScript. Adobe s'en empare et cre ActionScript. Le Standard se nomme ECMAScript. Il traite du langage en lui-mme. JavaScript, comme toutes les dclinaisons nes avant le standard, ont t depuis rvises pour s'y conformer. JavaScript est donc une implmentation de ECMAScript .

Quelle relations entre JavaScript et le DOM ?Auteurs : sekaijin , JavaScript, dans son implmentation dans un navigateur, permet d'accder aux lments de celui-ci. Mais aussi et surtout au contenu d'une page (X)HTML. Pour cela, un ensemble de mthodes et d'objets sont intgrs au langage. La norme rgissant cette relation est gre par le W3C. Elle fait partie de l'ensemble de normes rgissant le DOM.

A quoi sert le JavaScript ?Auteurs : sekaijin , simone.51 , Dans le navigateur, JavaScript est trs utilis pour traiter les vnements occasionns par un internaute sur une page Web, ainsi que pour faire des contrles sur les formulaires. De plus en plus, on l'utilise pour crer ou modifier l'interface utilisateur d'une page. Sur un serveur Web, il permet d'interagir avec les composants du serveur comme les fichiers, les sockets, les bases de donnes.

-5Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2004 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javascript.developpez.com/faq/javascript/

FAQ JavaScript

Sur un systme d'exploitation, il peut tre utilis comme Shell, ou encore pour automatiser certaines tches d'administration. C'est, entre autres, le cas sous Windows avec l'utilisation de WindowsHostScript. Dans un lecteur SVG, il permet de grer des animations. De mme, ActionScript, la dclinaison d'Adobe permet d'interagir avec Flash.

JAVA ou JavaScript ?Auteurs : simone.51 , vermine , gwinyam , Le JAVA et le JavaScript sont deux langages totalement diffrents : le JAVA est un langage beaucoup plus complexe que JavaScript (notions d'objet, de classes, d'hritage, de threads, et encore, vous n'avez rien vu....) ; le code source du JAVA est compil avant son excution ce qui assure notamment la confidentialit du code source (on n'accde pas au code en faisant clic droit > Afficher la source !!!) ; le JAVA est de loin plus performant que le JavaScript. En JAVA, on peut "quasi" tout faire. Cependant, le JavaScript volue constamment. Le noyau est mis jour avec de nouvelles fonctionnalits et les Frameworks JavaScript ajoutent chacun leur panel de mthodes en tout genre ; le JAVA est plus compliqu mettre en place (besoin d'une machine virtuelle, d'un compilateur...) que le JavaScript. Pour faire du JavaScript, il suffit d'un diteur et d'un navigateur...

A quoi ressemble un code JavaScript ?Auteurs : simone.51 , ................................... ...................................

Ce code se place gnralement dans les balises d'une page HTML, mais on peut le mettre presque partout. En ce qui concerne la syntaxe, elle est trs proche du C ou du PHP.

Comment appeler un objet dans une page ?Auteurs : simone.51 , gwinyam , Auteur , Pour appeler un objet, il y a plusieurs solutions. Prenons un exemple :

coucou

-6Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2004 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javascript.developpez.com/faq/javascript/

FAQ JavaScript

Nous allons donc appeler l'image prsente dans la premire ligne, deuxime colonne. 1. document.getElementById('test'). proprit ou mthode 2. document.exemple.name_test. proprit ou mthode 3. document.forms['exemple'].elements['name_test']. proprit ou mthode Ces trois solutions sont les trois solutions les plus utilises. La premire solution est la solution normalise, qui doit donc tre prconise. IE 6 et infrieurs ne font pas la diffrence entre l'attribut name et l'attribut id. Par consquent, si vous utilisez la fonction getElementById, n'oubliez pas l'attribut id. Les versions suprieures et les autres navigateurs n'ont pas ce problme. De plus, IE 9 ne distingue pas les attributs id et name en mode Quircks (pas de doctype dans le document). lien : Informations sur le doctype

Comment faire si JavaScript est dsactiv chez le client ?Auteurs : BrYs , gwinyam , On considre actuellement que le pourcentage d'internautes qui n'ont pas JavaScript activ dans leur navigateur est de plus en plus faible. Pour prvenir ces utilisateurs, vous pouvez utiliser les balises HTML : utilisation des balises noscript

lien : PHP : Comment dtecter si JavaScript est activ ou non?

-7Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2004 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javascript.developpez.com/faq/javascript/

FAQ JavaScript

Sommaire > Syntaxe JavaScript Comment dbugger un script JavaScript ?Auteurs : simone.51 , Fabszn , Si vous essayez de debugger un script sous Internet Explorer, vous risquez de rencontrer quelques problmes... En effet, la ligne de l'erreur signale ne correspond pas la ligne du code que vous avez cre. Pour retrouver l'erreur la bonne ligne, il faut faire afficher la source de la page. Clic droit --> Afficher la source Avec le navigateur Mozilla (et donc FireFox), qui possde un debugger JavaScript intgr, c'est un peu plus simple. Lorsqu'une erreur JavaScript est dtecte, celle ci est logge dans une console sous forme de lien. Lorsque l'on clique sur le lien, celui-ci nous envoie directement la ligne concerne par l'erreur (dans 99% des cas). En tous cas cela permet de travailler plus vite en JavaScript.

Pourquoi mes deux valeurs se concatnent au lieu de s'additionner ?Auteurs : BrYs , En javascript, le "+" est le symbole de concatnation. Pour additionner il faut utiliser parseInt(). Exemple :

variable1 = document.formulaire.champs1.value; /*variable1 = '12' */ variable2 = document.formulaire.champs2.value; /*variable2 = '20' */ total = variable1 + variable2; /*total = '1220' */

Avec parseInt() :

variable1 = document.formulaire.champs1.value; /*variable1 = '12' */ variable2 = document.formulaire.champs2.value; /*variable2 = '20' */ total = parseInt(variable1,10)+ parseInt(variable2,10); /*total = 32 */

Comment excuter une fonction aprs un dlai ?Auteurs : simone.51 , Par exemple, vous voulez faire revenir un internaute sur la page prcdente au bout de 2 secondes :setTimeout(function(){history.back()},2000);

Sous Firefox, il est galement possible de passer des arguments la fonction appele, en rajoutant des arguments la fonction setTimeout:

setTimeout(alert, 2000, 'gnark');

-8Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2004 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javascript.developpez.com/faq/javascript/

FAQ JavaScript

Ce code permet d'afficher (sous Firefox et Opra) un message box avec le texte gnark au bout de 2 secondes.

Comment utiliser une variable PHP/ASP dans du JavaScript ?Auteurs : simone.51 , Tout d'abord, le problme ne se pose pas qu'avec le PHP, il se pose avec tous les autres langages de requte mais le principe reste le mme. Il faut aussi savoir que a ne marche que dans un sens. On ne peut pas excuter du code PHP partir d'un script JavaScript. Pour excuter du code PHP, il faut repartir sur le serveur. Rappel : Le PHP s'excute cot serveur tandis que le JavaScript s'excute cot client. Par contre, on peut utiliser des variables PHP dans du code JavaScript.

Pas de problme, le alert affiche bien la valeur de l'input c'est dire 4. 2me exemple : La variable Test1 n'est pas dclare avec le mot-clef var :

L IE affiche un message d'erreur : Cet objet ne gre pas cette proprit ou cette mthode Pour les nophytes le message n'est pas trs clair... L'exemple 3 va nous aider comprendre : 3me exemple :

- 12 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2004 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javascript.developpez.com/faq/javascript/

FAQ JavaScript

Le code contenu dans alert est :

Test1.value

Et la bote de dialogue affiche bien la valeur de l'input c'est--dire 4. En fait sous IE, vous pouvez accder directement un objet en tapant son id (sous Firefox, vous devez passer par un document.getElementById()) donc dans l'exemple 2 quand vous crivez :

Test1 = parseInt(document.getElementById("Test1").value);

Test1 fait rfrence l'objet ayant pour id Test1 contenu dans la page, donc vous essayez d'affecter un entier un objet (ou dit autrement vous redfinissez votre objet input comme entier), ce qui explique le message d'erreur de IE.

A quoi sert "javascript:" dans une balise HTML ?Auteurs : Bovino , Certains attributs de balises HTML attendent comme valeur une URL, par exemple l'attribut href d'une balise ou action pour une balise . Il peut aussi arriver que l'on souhaite contourner les actions par dfaut de ces attributs, par exemple en remplaant un lien par une fonction JavaScript. Une 'ancienne' faon de coder (que l'on retrouve encore trop souvent) consiste remplacer l'URL attendue par une pseudo-url :

Excuter ma fonction

Cette notation permet d'indiquer au navigateur qu'il faut considrer le contenu de l'attribut comme du code JavaScript et l'excuter. Cette faon de faire prsente de nombreux inconvnients et aucun avantage. Elle ne respecte pas l'aspect smantique du HTML ; Elle ne permet pas de sparer les couches (HTML : contenu ; CSS : mise en forme ; JavaScript : comportement) ; Elle empche de prvoir des solutions alternatives pour les personnes ayant dsactiv JavaScript ; Beaucoup de gens ignorent que si la fonction JavaScript renvoie un rsultat, celui-ci sera affich sur la page ; Elle sme la confusion chez les dbutants qui considrent que 'javascript:' doit tre prsent partout, y compris pour les vnements (onclick, onmouseover, onmouseout etc.) ce qui est une erreur ; Les moteurs de recherche n'aiment pas du tout les liens... sans lien ; Vous perdez la rfrence au mot-cl this. Puisque javascript: est considr comme une URL, son contexte n'est plus celui du lien mais celui de l'objet Window.

Pour toutes ces raisons, l'utilisation de ce genre des pseudos-url est considre comme obsolte et doit tre vit tant que possible.- 13 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2004 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javascript.developpez.com/faq/javascript/

FAQ JavaScript

Il est prfrable de passer par les vnements, par exemple :

window.onload = function(){ document.getElementById('le_lien').onclick = function(){ ma_fonction(); return false; } }

Et dans la page HTML :

Excuter ma fonction

Dans cet exemple, au clic sur le lien, l'vnement 'click' sera dclench et lancera la fonction ma_fonction puis le return false inhibera le comportement par dfaut (accder l'adresse du href), cependant, si JavaScript est dsactiv, l'utilisateur sera dirig vers une page alternative. Il peut aussi arriver que l'on veuille absolument avoir l'appel la fonction dans le lien, dans ce cas, il suffira de faire :

Excuter ma fonction

En rsum, l'utilisation des pseudos-url est souvent le signe d'un codage maladroit et doit tre proscrit au maximum. En revanche, il est noter que l'utilisation dans la barre d'adresse est un bon moyen de tracer ses variables ou de voir le contenu de ses fonctions. Par exemple, si vous avez une fonction maFonction ou une variable maVariable dans votre script, testez javascript:alert(maFonction) ou javascript:alert(maVariable) dans la barre d'adresse !

Comment crer une variable globale dans une fonction ?Auteurs : SpaceFrog , Lorsque l'on cre une variable l'intrieur d'une fonction, elle appartient au contexte de cette fonction. Elle est donc locale. Il est cependant possible de crer localement (dans le contexte d'une fonction) une variable globale en considrant que le contexte global correspond en fait au contexte local de l'objet Window :

function CreerVariableGlobale( NomVar, valeur ){ window[NomVar] = valeur; } CreerVariableGlobale( "voeux", "Bonne anne 2005" ) alert( voeux ); // Retournera "Bonne anne 2005"

Comment fonctionnent les oprateurs d'incrmentation ?Auteurs : vermine , Les oprateurs d'incrmentation que l'on rencontre souvent dans les boucles for ou while sont au nombre de deux : + + et --. Ils permettent d'augmenter ou de diminuer de 1 une variable (bien souvent un compteur). Ils constituent une criture simplifie de :

- 14 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2004 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javascript.developpez.com/faq/javascript/

FAQ JavaScript

i = i + 1; i += 1;

On constate deux syntaxes pour ces oprateurs :

i++; ++i;

Elles sont sensiblement les mmes sauf lors d'une assignation. L'ordre prend alors toute son importance. Petit exemple :

var i = 0; var j = 0; i = j++; //Donne i = 0, j = 1; // On rinitialise les variables i = 0; j = 0; i = ++j; //Donne i = 1, j = 1;

Effectivement, la premire assignation va d'abord attribuer la valeur de j i et ensuite incrmenter j. Tandis que la seconde instruction va en premier lieu incrmenter j, puis attribuer la nouvelle valeur de j i. Remarque : il est tout fait possible d'incrmenter une variable sans l'assigner :

var i = 0; var j = 0; i++; //Donne i = 1; ++j; //Donne j = 1;

Bien entendu, on constate le mme phnomne avec la dcrmentation :

var i = 0; var j = 5; i = j--; //Donne i = 5, j = 4; // On rinitialise les variables i = 0; j = 5; i = --j; //Donne i = 4, j = 4;

Comment dclarer une fonction en JavaScript ?Auteurs : vermine , Bovino , Lcf.vs , Le JavaScript permet de crer ses propres fonctions avec une syntaxe utilise par plusieurs langages de programmation. Malheureusement, le JavaScript n'est pas trs exigeant et nous permet de faire des choses pas ncessairement cohrentes. Dans les cas normaux, vous dclarez votre fonction, avec ou sans paramtres, de la manire suivante :

- 15 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2004 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javascript.developpez.com/faq/javascript/

FAQ JavaScript

/* Cas Normaux */ function maFonction(){ alert("Ma fonction sans paramtre"); } function maFonctionAvecParemetres(Un, Deux){ alert("Param 1: " + Un + "\nParam 2: " + Deux); } maFonction(); maFonctionAvecParemetres("Un", "Deux");

Donc, lorsque la fonction est dfinie sans paramtre, vous l'appelez sans paramtre. Lorsqu'elle est dfinie avec deux paramtres, vous lui passez deux paramtres. Et ainsi de suite. C'est le meilleur moyen pour viter toute sorte d'erreur. Cependant, vous pouvez jouer sur le nombre de paramtre et lui en passer moins que ce que la fonction demande, ou lui en passer plus que ce qu'elle ne demande :

/* Cas dangereux */ function maFonction(Un, Deux, Trois){ alert("Param 1: " + Un + "\nParam 2: " + Deux + "\nParam 3: " + Trois); } maFonction(); maFonction("Un"); maFonction("Un", "Deux"); maFonction("Un", "Deux", "Trois"); maFonction("Un", "Deux", "Trois", "Quatre");

JavaScript est malgr tout content, il s'y retrouve. Par contre, il ne vous prviendra pas si tous les paramtres sont passs ou non et ce sera vous de faire la gestion des paramtres reus. Dans ces conditions, on en arrive vite oublier un cas ou l'autre. Si vous ne pouvez pas prvoir d'avance le nombre de paramtres que prendra votre fonction, mieux vaut alors passer par d'autres solutions. Le tableau arguments de l'objet Function :

function maFonction(){ var i=0, txt=''; while(arguments[i]){ txt+=arguments[i]+' '; i++; } alert(txt); } maFonction(); maFonction('toto'); maFonction('maFonction','avec','beaucoup','de','paramtres','!');

Le passage d'objet :

function getNamedArguments(ArgumentsObj){ var element,txt=''; for(element in ArgumentsObj){ if(txt!=''){ - 16 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2004 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javascript.developpez.com/faq/javascript/

FAQ JavaScript

txt+=', '; } txt+=' la valeur de l'argument "'+element+'" est "'+ArgumentsObj[element]+'"'; } alert(txt); } getNamedArguments({ property:'test' }); getNamedArguments({ property1:'value1', property2:'value2', property3:'value3' });

Mais ce n'est pas tout. JavaScript permet de redfinir les objets. Donc, si par inadvertance vous crez deux fonctions ayant le mme nom, JavaScript ne vous dira rien et ne se souviendra que de la dernire que vous aurez dclare. Effectivement, il aura redfinit la premire avec le code de la dernire :

/* Cas problmatiques */ function maFonction(){ alert("La fonction dfinie en premire"); } function maFonction(Un){ alert("La fonction dfinie en dernire"); } maFonction(); //J'appelle ma fonction sans paramtre, celle que j'ai dfini en premire //---> Rsultat: La fonction dfinie en dernire

Conclusion, mme si JavaScript vous laisse parfois quelques liberts, il est ncessaire et recommand d'tre rigoureux.

- 17 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2004 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javascript.developpez.com/faq/javascript/

FAQ JavaScript

Sommaire > Les tableaux (l'objet Array) Comment dclarer et initialiser un tableau ?Auteurs : zazaraigne , 1. Avec new Array() On dclare d'abord la variable en tant que nouveau tableau ( new Array( ) ) puis on remplis le tableau indice par indice.

var semaine = new Array(7); semaine[0] = "dimanche"; semaine[1] = "lundi"; semaine[2] = "mardi"; semaine[3] = "mercredi"; semaine[4] = "jeudi"; semaine[5] = "vendredi"; semaine[6] = "samedi";

Le mot cl new est un oprateur qui sert exclusivement crer une instance d'objet. Ici nous avons cr un objet de la classe Array nomm semaine. Notez que la taille du tableau est explicitement indique en paramtre et que chaque indice est plac entre crochets ( [ et ] ). Le plus grand indice correspond la taille du tableau -1 (le premier indice tant toujours 0). Notez aussi qu'il n'est pas ncessaire d'indiquer la taille lors de la dclaration du tableau. 2. Avec new Array() en passant les valeurs en paramtres On peut aussi dclarer le tableau en passant les donnes en paramtres l'intrieur des parenthses. De cette faon, vous initialisez le tableau tout en dfinissant sa taille.

var semn = new Array("dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi");

Exemple : Le script suivant affiche la valeur de semn l'indice 2 : mardi

var semn = new Array("dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"); document.write(semn[2]);

3. Sans new Array() On peut se passer de la commande new Array( ) en initialisant directement la variable comme un tableau en plaant la srie de valeurs entre crochets ( [ et ] ). Cela a pour effet d'initialiser la variable en tant que tableau et d'en dfinir la taille.

var joursem = ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"];

Exemple : Le script suivant affiche la valeur de joursem l'indice 6 : samedi var joursem = ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]; document.write(joursem[6]);

- 18 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2004 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javascript.developpez.com/faq/javascript/

FAQ JavaScript

Notez que dans chacun des exemples ci-dessus, le premier indice est toujours 0 ( zro ) et ce peu importe la mthode utilise pour dclarer et initialiser le tableau.

Comment scinder une chane de caractres en un tableau ?Auteurs : zazaraigne , Il est possible de scinder ( dcouper ) une chane de caractres pour placer chacune des parties dans un tableau. Il suffit d'utiliser la mthode split() de l'objet String.var parties = "Ceci est une chane".split(" ");

Le caractre plac en argument ( entre les parenthses ) sert indiquer o se fait la sparation. Ici, il s'agit d'un espacement. Le tableau suivant est automatiquement cr. parties[0] contenant "Ceci" parties[1] contenant "est" parties[2] contenant "une" parties[3] contenant "chane"

Comment joindre les parties d'un tableau en une chane ?Auteurs : zazaraigne , Il est possible de concatner les lments d'un tableau en utilisant la mthode join() de l'objet Array. L'argument entre parenthses est un caractre ou une chane de caractres ( entre guillemets ). Si l'expression ( caractre ou chane ) est omis, il sera automatiquement remplac par une virgule.var chaineOriginale = parties.join(" ");

Ici, chaineOriginale contiendra : "Ceci est une chane" alors qu'avec :var chaineOriginale = parties.join();

chaineOriginale contiendra"Ceci,est,une,chane"

Comment utiliser en JavaScript un tableau PHP ?Auteurs : SpaceFrog , Il est souvent utile de rcuprer en JavaScript des tableaux PHP. Malheureusement, le fonctionnement de PHP cot serveur et de JavaScript cot client ne permet pas de transmettre de donnes types. Nous allons utiliser la fonction PHP implode() pour transmettre le tableau JavaScript sous forme de chane puis la fonction JavaScript split() pour transformer cette chane en tableau. Ce code ne fonctionne qu'avec des tableaux indexs. Pour des tableaux associatifs, vous devrez passer par un objet JSON. Le sparateur utilis (ici '') ne doit pas tre contenu dans une valeur du tableau !

=0)); }

- 86 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2004 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javascript.developpez.com/faq/javascript/

FAQ JavaScript

La fonction parseInt() retourne un nombre entier converti partir d'une chane. L'expression rgulire permet de vrifier que le nombre est bien uniquement compos de chiffres. Une autre solution :

function IsPosInteger(nbr){ nbr==Math.abs(parseInt(nbr)); }

Conversion d'un tableau PHP de dimension N en tableau JavaScriptAuteurs : torvalds17 , simone.51 , Voici le code de la fonction PHP permettant la conversion :