Javascript
Tout au long de ces pages, je présupposerai que vous disposez d'un certain niveau préalable de connaissance. Ce que je veux montrer, ce sont quelques "trucs" qui vous feront voir probablement un peu plus que ce que vous ne voyez maintenant. La première chose dont nous allons parler au sujet de Javascript, c'est la lecture du code source. Il y a plusieurs manières de regarder le code source de pages web, à supposer que vous utilisiez IE :
Maintenant, venons en aux challenges Javascript. Les challenges Javascript les plus simples sont fondés sur la fausse piste. Par exemple, des pages avec de grandes zones blanches dans la source et un message disant "source HTML cachée". Une de mes préférés parmi ces fausses pistes est le petit morceau de Javascript qui ressemble à ça:
<script src="JavaScript"><!-- var pass; pass=prompt("Password:",""); if(pass=="letmein") { window.location.href="done.htm"; } else { window.location.href="failed.htm"; } --></script>
En fait vous pouvez même l'essayer ici. Alors, quel est le mot de passe ? Eh bien, ce n'est pas "letmein". En fait le mot de passe correct est "sheep" ! Maintenant, vous devez vous demander comment cela est-il Dieu possible. Eh bien, c'est tout de la fausse piste. La première ligne dit que le script est dans un fichier nommé "JavaScript", le reste n'apparaissant que dans un commentaire. Vous devez donc regarder dans le fichier appelé JavaScript pour voir le vrai code source. En réalité, vous devriez tirer plus d'un enseignement de ce simple exemple. Ce n'est pas seulement ce truc marrant en javascript, mais il s'agit en fait de l'observation et de la compréhension. Sans compréhension de Javascript vous ne devinerez jamais la réponse ou vous ne saurez jamais ce que vous avez fait de travers. Même en connaissant à fond Javascript, la première fois que vous êtes tombé sur ce problème, il vous a probablement surpris. Ici la solution est de charger le fichier JavaScript dans votre navigateur et de visionner le vrai code source.
La leçon suivante dans la série "Fausse route au pays du Javascript" est le bon vieux coup du "Quelle variable suis-je ?". C'est fondamentalement le cas où vous additionnez 2 et 2 et vous obtenez 22 et non 4. Ceci étant dit, vous ne devriez plus avoir de problème avec ça. Souvent, vous aurez le droit en plus à une nouvelle erreur d'aiguillage qui fera que vous ne réaliserez pas qu'une concaténation se produit à un certain moment plutôt que l'addition attendue.
Pour terminer, nous parlerons simplement de la récupération de valeurs dans des challenges JavaScript. Par exemple, vous avez votre page html avec un méchant code javascript et vous n'arrivez pas à comprendre ce qui se passe. Vous devez contrôler une certaine valeur à un moment donné. La meilleure chose à faire dans ce cas est d'enregistrer la page sur votre disque dur et d'y ajouter quelques lignes de code de votre cru. Le truc auquel il faut penser, c'est "alert". Ainsi, alert(mavariable) fera surgir à l'écran une boîte de message avec la valeur que vous voulez voir. Jetez un oeil à ceci où j'ai inséré quelques "alert" pour restituer des valeurs à certains endroits.
Si tout va bien, avec ces quelques astuces, vous devriez pouvoir commencer à creuser quelques épreuves faciles de Javascript, et vous devriez avoir suffisamment confiance pour commencer à bricoler un peu sur des niveaux de javascript un peu plus compliqués. En général, la plupart des challenges javascript ne sont pas beaucoup plus sophistiqués que ce dont je vous ai parlé. Rappelez-vous seulement ceci : si c'est du javascript, vous avez accès au code source complet, il tourne sur votre ordinateur et vous pouvez en faire ce que vous voulez.
Une des épreuves les plus cools que j'aie jamais vues ressemblait à ça :
<script> <!-- document.write(unescape("une chaine sacrément longue")); --></script>
et c'était tout. La page décryptait son propre source qui contenait encore du javascript et s'exécutait. Une façon de gérer ce genre de choses est d'ouvrir une autre fenêtre avec quelque chose comme :
<script> <!-- msgWindow=window.open("","displayWindow","menubar=yes"); msgWindow.document.write(unescape("une chaine sacrément longue")); --></script>
et comme ça, vous pouvez voir le code source. Finalement, quand vous êtes réellement bloqué, ça vaut le coup de visiter quelques pages de référence du genre Netscape ou Sun.
Un seul livre sur JavaScript, il est excellent, bien que peut-être pas vraiment adapté pour les vrais newbies.