Le JavaScript est souvent utilisé comme un langage de script côté client. Cela signifie que le code JavaScript est écrit dans une page HTML. Quand un internaute fait une requête sur une page HTML avec du JavaScript dedans, le script est envoyé au navigateur qui traduit le code et le renvoie à la différence d'un code PHP qui est interprété par le serveur.
de nos jours tous les navigateurs le JavaScript,
Le fait que le script ce situe dans une page HTML signifie que vos scripts peuvent être vus et copiés par celui qui consulte votre page.Néanmoins, pensez que vous même pouvez recopier du code afin de le comprendre et l'utiliser.
Le JavaScript peut être employé dans d'autres contextes que celui du navigateur web. Netscape a crée le JavaScript coté serveur comme le langage CGI qui peut faire les même choses que Perl et l'asp. Il n'y a donc rien qui vous empêche de créer des programmes complexes. Cependant, ce tutorial traite exclusivement de l'emploi du JavaScript dans des navigateurs.
Le JavaScript n'est pas identique à Java. Je répète : Le JavaScript n'est pas identique à Java.
Bien que les noms soient très semblables, le Javascript est principalement un langage de script à utiliser dans des pages de HTML,alors que Java est un vrai langage de programmation qui fait des choses tout à fait différentes de JavaScript. En outre il est beaucoup plus difficile d'apprendre Java. Il a été développé par Sun pour l'usage de programmes nécessitant une certaine puissance de calcul.
Le JavaScript a été développé par Netscape pour le côté client (dans le navigateur) et pour les scripts côté serveur. À l'origine le langage s'appelait Live Script , mais alors qu' il était sur le point de devenir connue Java était devenu immensément populaire. Au dernier moment Netscape a changé le nom de son langage de Script en "JavaScript". Ceci a été fait purement pour des raisons commerciales.
Java comme JavaScript descendent du C et du C++, mais les langages (ou plutôt, leurs ancêtres) sont allées dans des directions complètement différentes. Vous pouvez les voir en tant que cousins lointains. Tous les deux sont orienté objet (bien que ce soit moins important pour le JavaScript que pour beaucoup d'autres langages) et ils partagent une syntaxe similaire, mais les différences entre eux sont plus importantes que les similitudes.
Le JavaScript n'est pas un langage de programmation dans le sens strict. On le considère plutôt comme un langage de script parce qu'il emploie le navigateur pour effectuer le sale travail. Si vous demandez à une image d'être remplacés par une autre, le JavaScript indique au navigateur d'aller le faire. Puisque le navigateur effectue le travail à votre place, vous avez seulement à écrire quelques simples lignes de code. C'est ce qui fait du JavaScript un langage facile pour débuter.
Mais ne vous y trompez pas, le JavaScript peut être ce révéler aussi très difficile. Premièrement, en dépit de son aspect simple il est aussi un langage de programmation très complet. Il est donc possible d'écrire des programmes très complexes en JavaScript. C'est rarement nécessaire quand il s'agit de l'utiliser pour des pages web, mais c'est tout à fait possible. Ceci signifie qu'il y a quelques structures de programmation assez complexes que vous ne pourrez comprendre qu'après les avoir étudiés.
Deuxièmement, ca reste rare mais il y peut y avoir des différences de navigateurs.
Il est facile d’apprendre les bases du JavaScript, mais quand vous commencerez à écrire des scripts plus évolués vous serez vite confronté aux différences entre navigateurs (il y a de temps en temps des problèmes de syntaxe).
===Sécurité===Le JavaScript côté Client a été expressément développé pour l'usage dans un navigateur web en association avec des pages HTML. Ceci a certaines conséquences pour la sécurité.
Tout d'abord, notez soigneusement svp ce qui se produit quand un utilisateur visite un site Web contenant du JavaScript :
L'utilisateur demande une certaine page HTML sans savoir s'il elle contient du JavaScript. La page HTML est fournie au navigateur, ainsi que les scripts. Les scripts fonctionnent habituellement automatiquement lorsque la page ce charge. En général l’utilisateur ne peut rien faire pour stopper les scripts (bien, qu'il pourrait stopper le code JavaScript via les options de son navigateur, mais peu d'utilisateurs savent le faire).
Il est courant de voir un utilisateur lambda télécharger un programme aléatoire et lui permettre de s'exécuter sur sa machine. Par conséquent il devrait y avoir des règles strictes sur ce que ce programme peut faire et ne peut pas faire.
Donc le JavaScript ne peut tout simplement pas faire de choses dangereuses. Malheureusement Microsoft a vu qu'il pouvait rajouter quelques commandes de fichier system, en combinaison avec sa technologie ActiveX. Ceci signifie que l'explorateur Windows est structurellement moins sûr que n'importe quel autre navigateur. Il a quelques protections de "built-in", mais les hackers trouvent encore régulièrement des faiblesses. Le premier virus JavaScript dont j'ai entendu parler fonctionne dans ce sens fort heureusement microsoft a decidé d'abandonner les activex.
Ainsi le JavaScript fonctionne seulement sur des pages en HTML ou des partie du navigateur. Vous ne pouvez pas influencer quelque chose qui n'en fasse pas partie. Mais même dans un navigateur il y a quelques zones non modifiables. Fondamentalement le JavaScript veut protéger l'intimité de l'utilisateur en rejetant certaines actions et en demandant la permission pour d'autres :
Cependant, cette règle n'est pas mise en application dans tous les navigateurs et il est facile de la contourner sous l'explorer Windows.
Notez que l'explorer Windows (et peut-être d'autres navigateurs) permet ceci, contrairement aux règles de sécurité.
Ainsi le JavaScript est un langage de script utilisé pour influencer des éléments en HTML, comme des formes, des images, des couches, des paragraphes etc... ainsi que pour influencer quelques objets non–HTML comme la fenêtre du navigateur. Rien de plus, mais (d'une manière primordiale) rien de moins.
chaque nouvelle version de navigateur supporte plus de JavaScript et permet de plus en plus de changer vos pages HTML par des scripts. Ceci mène à bien plus d'incompatibilités.
Il est préférable de résoudre des problèmes de compatibilité au cas par cas. En fait, la plupart des pages sur ce tutorial ont été précisément écrites en raison des incompatibilités de navigateur. Mais je vous avertis : vous devez digérer énormément d'information. Par conséquent il est préférable pour résoudre un problème actuel de laisser seul le reste de l'information jusqu'à ce que vous ayez besoin d'elle.
===Versions de navigateur===Les différences entre les versions sont plus simples que celles entre les navigateurs. Je divise les navigateurs de Javascript en navigateurs de version 2, de version 3, de version 4 et de version 5. Ces numéros de version me sont propre et sont cité sur chaque page de ce tutorial. J'explique entièrement ce système sur ma page Introduction aux navigateurs.
version | date de sortie | correspondance ECMA-262 | navigateurs |
---|---|---|---|
1 | mars 1996 | Netscape 2 et Explorer 3 | |
1.1 | aout 1996 | Netscape 3 | |
1.2 | Juin 1997 | Netscape 4 opera 3 | |
1.3 | octobre 1998 | ECMA-262 1 et 2 | Netscape 4 ie 4 opera 5 |
1.4 | novembre 1998 | utilisé seulement sur les serveurs Netscape et opera 6 | |
1.5 | novembre 2000 | ECMA-262 3 | Netscape 6 firefox 1 opera 7 chrome 1 |
1.6 | Novembre 2005 | firefox 1.5 | |
1.7 | Octobre 2006 | firefox 2.0 chrome 28 | |
1.8 | Juin 2008 | firefox 3 | |
1.8.1 | firefox 3.5 | ||
1.8.2 | juin 2009 | firefox 3.5 | |
1.8.5 | juillet 2010 | ECMAScript 5 | firefox 4 ie 9 opera 11.60 |
a partir de la version 1.3 javascript a été standardisé afin d'éviter de se retrouver avec plusieurs variantes de javascript on imagine les conséquences. Ecmacsript est l'organisme chargé de cette normalisation et a ses propres numéro de version
Cependant, une distinction très importante doit être faite. Les modules principaux du JavaScript sont le noyau (Core) et le DOM (Document Object Model) . Les versions de JavaScript peuvent être très utiles lorsqu'il s'agit d'essayer de déterminer le support du noyau, mais elles sont inutiles pour le support du DOM, ou les caractéristiques des navigateurs.
Alors comment vais je savoir si un navigateur peut manipuler mes scripts ? La règle de base est : n'utilisez pas un détecteur de navigateur, utilisez un détecteur d'objet.
avec l'accentuation des norme en matiere de navigateurs que ce soit le javascript le dom et le css tous les navigateurs s'appliquent a respecté ces norme il arrive de trouver des différences mais elles sont très rares seul les navigateurs d'anciennes génération ie 8 et inférieur on des syntaxes différentes mais a partir de IE 9 microsoft a décide de s'aligne sur les norme ce qui n'était pas le cas surtout pour le DOM.
la console
tous les navigateurs modernes possèdent une console JavaScript pour voir les erreurs que vous faites il ne faut surtout pas s'en privé je dirait même que c'est un outil indispensable.
on peut aussi mettre des alert ou utiliser console.log pour par exemple contrôler si une valeur est exacte
Si vous débutez en JavaScript, lisez dans un premier temps la page Détection d'objets C’est la page la plus importante de ce site car elle vous enseigne les règles de base du JavaScript : n’utilisez pas un détecteur de navigateur, utilisez un détecteur d’objets.
Une fois que vous aurez lu cette page, l’idéal est d’essayer le script mouseover. Le résultat est très populaire, et une fois que vous aurez étudié ce script, vous comprendrez mieux les bases du Noyau, du DOM niveau 0 et du traitement d’évènements (Event handling)..
Après cela, les bases seront acquises et je vous donnerai une introduction plus structure sur les différents modules de JavaScript.
Traduction de la page : http://www.quirksmode.org/js/intro.html