You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 00-javascript.md
+19-8
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,15 @@
1
1
---
2
2
layout: page
3
3
title: JavaScript
4
-
permalink: /js/
4
+
permalink: index.html
5
5
---
6
6
7
7
**JavaScript** est un langage de programmation...
8
-
* **scripté** (interprété) - pas de compilateur à proprement parler.* **côté client** - s’exécute dans un navigateur en général(il existe des environnements côté serveur : NodeJS).* **asynchrone** - plusieurs « morceaux » peuvent s’exécuter en parallèle.
8
+
9
+
***scripté** (interprété) - pas de compilateur à proprement parler.
10
+
***côté client** - s’exécute dans un navigateur en général
11
+
(il existe des environnements côté serveur : NodeJS).
12
+
***asynchrone** - plusieurs « morceaux » peuvent s’exécuter en parallèle.
9
13
10
14
Une meilleure définition: le rôle du JavaScript consiste typiquement à sélectionner des parties d'un document, et à décrire ce qui doit changer quand un certain événement se produit (selon [Paul Robert Lloyd](https://paulrobertlloyd.com/2018/05/javascript)).
11
15
@@ -19,23 +23,30 @@ Que permet le JavaScript?
19
23
Le JavaScript, s'il a été utilisé initialement pour ajouter de "petites fonctionalités" aux navigateurs, comme p.ex. ouvrir des fenêtres pop-up, est néanmoins un langage de programmation à part entière.
20
24
21
25
Dans un navigateur JavaScript, permet :
22
-
* de spécifier des changements sur le document :* sur le contenu, la structure, le style* en interceptant des événements (souris, clavier, doigts...)
26
+
27
+
* de spécifier des changements sur le document :
28
+
* sur le contenu, la structure, le style
29
+
* en interceptant des événements (souris, clavier, doigts...)
23
30
24
31
Mais également (API HTML5) :
25
-
* d’échanger avec un serveur (AJAX)* de dessiner (canvas - bitmap - ou svg - vectoriel)* de se géolocaliser* d’enregistrer localement du contenu (cache ou bdd)
26
-
* de jouer des fichiers audio ou video
32
+
33
+
* d’échanger avec un serveur (AJAX)
34
+
* de dessiner (canvas - bitmap - ou svg - vectoriel)
35
+
* de se géolocaliser
36
+
* d’enregistrer localement du contenu (cache ou bdd)
37
+
* de jouer des fichiers audio ou video
27
38
28
39
<h3>Des applications en JavaScript</h3>
29
40
30
41
JavaScript est utilisé par des applications comme [Figma](https://www.figma.com/) (éditeur graphique, dont le code est [écrit en C++](https://medium.com/figma-design/building-a-professional-design-tool-on-the-web-6332ed4f1fcc#.8egblptg3) puis converti en JavaScript), ou pour simuler dans le navigateur des ordinateurs historiques (cf. [Internet Arcade](https://archive.org/details/internetarcade)).
31
42
32
43
JavaScript permet aussi de construire un éditeur 3D, comme ThreeJS:
Entre ces deux extrêmes, le JavaScript peut être utilisé pour développer des extensions de navigateur - par exemple l'extension Firefox [Add-Art](https://github.com/slambert/Add-Art) qui remplace les bannières publicitaires par des travaux d'artistes - ou pour étendre les fonctionalités de logiciels comme [Adobe InDesign](https://forums.adobe.com/community/indesign/indesign_scripting), [Max](https://docs.cycling74.com/max7/tutorials/javascriptchapter01) ou [Sketch](http://developer.sketchapp.com/introduction/plugin-scripts/).
37
48
38
-

49
+

39
50
40
51
Le standard JavaScript est révisé régulièrement. La 6ème version (ES6 ou ES2015) a été finalisée en juin 2015 et la 7ème (ES7 ou ES2016) en juin 2016. Juriy Zaytev propose un [tableau récapitulatif](http://kangax.github.io/compat-table/) des fonctionnalités supportées par les différentes implémentations et navigateurs.
41
52
@@ -50,7 +61,7 @@ De nombreux utilitaires ont été construits sur la base du JavaScript:
50
61
-**Ember** est un autre *framework* front-end JavaScript.
51
62
-**React** est encore un *framework* JavaScript front-end, créé par les développeurs de Facebook.
Une application web contemporaine, au lieu d'utiliser **LAMP** (**L**inux, **A**pache, **M**ySQL, **P**HP), pourrait tourner sur **MEAN**, acronyme pour l'utilisation de **M**ongoDB (base de données), **E**xpress.js, **A**ngular.js, et **N**ode.js - une base logicielle entièrement codée en JavaScript.
Copy file name to clipboardExpand all lines: 10-base-js.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
layout: page
3
3
title: Bases JavaScript
4
-
permalink: /js/bases/
4
+
permalink: bases.html
5
5
---
6
6
7
7
Quelques bases JavaScript...
@@ -74,7 +74,7 @@ La console est un outil intégré à votre navigateur. Voici comment l'afficher:
74
74
75
75
Si vous effectuez cela sur Facebook, vous constaterez que cette plateforme n'apprécie pas que ses utilisateurs ouvrent la console développeur:
76
76
77
-

77
+

78
78
79
79
L'artiste James Bridle a [écrit un article](http://booktwo.org/notebook/welcome-js/) et développé un script - [welcome.js](https://github.com/stml/welcomejs/) - en résponse à cette pratique.
Copy file name to clipboardExpand all lines: 20-manipulation.md
+56-19
Original file line number
Diff line number
Diff line change
@@ -65,26 +65,40 @@ window.document.write("<b>Bienvenue à l'université de Pau</b>");
65
65
66
66
DOM: Document Object Model
67
67
68
-
Représentation d'un document x(ht)ml sous saforme 100% objet
68
+
Représentation d'un document x(ht)ml sous sa
69
+
forme 100% objet
69
70
70
-
* Les balises sont des noeuds et leurs imbrications forment une arborescence* Cette structure d'arbre est ensuite facile à manipuler
71
+
* Les balises sont des noeuds et leurs imbrications forment une arborescence
72
+
* Cette structure d'arbre est ensuite facile à manipuler
71
73
72
74
L'arbre DOM est chargé dans le navigateur
73
75
74
-
* L'arbre est parcouru par le moteur de rendu du navigateur afin de produire l'affichage graphique* Chaque modification ultérieure de cet arbre force le rafraîchissement de l'affichage graphique
76
+
* L'arbre est parcouru par le moteur de rendu du navigateur afin de produire l'affichage graphique
77
+
* Chaque modification ultérieure de cet arbre force le rafraîchissement de l'affichage graphique
<body> <pid="intro"> Pour me contacter : <ahref="mailto:[email protected]">cliquez ici</a>
82
-
<ul> <li>Uniquement en semaine</li>
83
-
</ul> </p> <h1class="joli1">S'inscrire à la Newsletter</h1>
84
-
<form> <inputtype="text"name="news_email"/>
85
-
</form></body>
83
+
<html>
84
+
<head>
85
+
<title>Bienvenue</title>
86
+
<scriptsrc="essai.js"></script>
87
+
</head>
88
+
<body>
89
+
<pid="intro">
90
+
Pour me contacter : <ahref="mailto:[email protected]">cliquez ici</a>
91
+
<ul>(img
92
+
<li>Uniquement en semaine</li>
93
+
</ul>
94
+
</p>
95
+
<h1class="joli1">S'inscrire à la Newsletter</h1>
96
+
<form>
97
+
<inputtype="text"name="news_email"/>
98
+
</form>
99
+
</body>
86
100
</html>
87
-
```
101
+
```(img
88
102
89
103
Arbre du document XHTML:
90
104
@@ -94,7 +108,15 @@ Arbre du document XHTML:
94
108
95
109
**Popriétés** | **Commentaires**
96
110
childNodes | nœuds enfants (Array)
97
-
firstChild | premier nœud enfantlastChild | dernier nœud enfantnextSibling | prochain nœud d'un type (nœud de même niveau)parentNode | nœud parentpreviousSibling | nœud précédent d'un type (nœud de même niveau)nodeName | nom du nœudnodeValue | valeur / contenu du nœudnodeType | type du nœudinnerHTML | contenu littéral html du noeud
111
+
firstChild | premier nœud enfant
112
+
lastChild | dernier nœud enfant
113
+
nextSibling | prochain nœud d'un type (nœud de même niveau)
114
+
parentNode | nœud parent
115
+
previousSibling | nœud précédent d'un type (nœud de même niveau)
116
+
nodeName | nom du nœud
117
+
nodeValue | valeur / contenu du nœud
118
+
nodeType | type du nœud
119
+
innerHTML | contenu littéral html du noeud
98
120
99
121
Navigation dans l'arbre DOM
100
122
@@ -119,7 +141,8 @@ var result = document.getElementById("intro") ;
119
141
```
120
142
121
143
Par la valeur de **l'attribut class** (si il existe)
122
-
```javascript
144
+
145
+
```javascript
123
146
var result =document.getElementsByClassName("joli1") ;
124
147
// Renverra 0 ou n résultats
125
148
```
@@ -141,7 +164,8 @@ var result = document.getElementsByName("news_email") ;
141
164
```
142
165
143
166
Par **les sélecteurs CSS**
144
-
```javascript
167
+
168
+
```javascript
145
169
var result =document.querySelector("p#intro") ;
146
170
// Renverra 0 ou 1 résultat, le premier trouvé
147
171
```
@@ -171,26 +195,38 @@ Accès par navigation dans l'arbre DOM:
Copy file name to clipboardExpand all lines: 70-visualisation.md
+5-5
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ permalink: /js/visualisation
8
8
9
9
-[Programming Design Systems](https://programmingdesignsystems.com/), un livre digital gratuit et open-source, en cours d'écriture par [Rune Madsen](https://runemadsen.com/) (enseignant au [ITP à New York University](https://tisch.nyu.edu/about/directory/itp/1490791702)). Les exercices et exemples de code sont en Javascript (et utilisent **P5**, une bibliothèque de dessin vectoriel).
10
10
11
-

11
+

12
12
13
13
Bibliothèques de dessin vectoriel et de visualisation:
14
14
@@ -23,19 +23,19 @@ Bibliothèques de dessin vectoriel et de visualisation:
23
23
-[PixiJS](http://www.pixijs.com/) - "a fast lightweight 2D rendering library" Utilise le language WebGL.
24
24
-[Three.js](https://threejs.org/) - permet la création d'animations 3D dans le navigateur. Utilise le language WebGL.
25
25
26
-

26
+

27
27
28
28
Analyse de données provenant de SMS, dessinant l'évolution d'une relation amoureuse sur quatre années, généré avec Rune.js. [Call me Adele](https://medium.com/@wipaweeeeee/call-me-adele-f37162b6ffe5#.padbmd6fd), Travail de l'artiste Wipawe Sirikolkarn
Infinitown, une ville dont le plan infini est généré aléatoirement. Développé avec Three.js, par le studio [Little Workshop](https://www.littleworkshop.fr/projects/infinitown/).
Carte interactive du monde imaginaire Runeterra (dans l'univers du jeu League of Legends), programmée avec Three.js & React ([source](https://twitter.com/felixturner/status/1021849617896337408)).
0 commit comments