Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
issue97:javascript [2015/06/18 09:19] – andre_domenech | issue97:javascript [2015/06/20 21:22] (Version actuelle) – [encadré page 21] fcm_-_ekel |
---|
In the first case, the myName stores a string value; in the second case it should store an integer, 123, but JavaScript has a special type, Number (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) to hold numerical values.** | In the first case, the myName stores a string value; in the second case it should store an integer, 123, but JavaScript has a special type, Number (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) to hold numerical values.** |
| |
Dans la première partie, je vous ai montré comment JavaScript a évolué au fil des ans, l'état actuel du langage, et pourquoi il est si largement adopté par les développeurs. Dans cette partie, je vais me concentrer sur les Objets et les fonctions JavaScript. J'ai reçu un courriel de Ray (un de nos lecteurs, merci de m'avoir contacté) avec quelques questions, j'aborderai celles-ci à la fin de l'article dans la section Questions et Solutions. | Dans la première partie, je vous ai montré comment JavaScript a évolué au fil des ans, l'état actuel du langage, et pourquoi il est si largement adopté par les développeurs. Dans cette partie, je vais me concentrer sur les Objets et les fonctions JavaScript. J'ai reçu un courriel de Ray (un de nos lecteurs, merci de m'avoir contacté) avec quelques questions et j'aborderai celles-ci à la fin de l'article dans la section Questions et Solutions. |
| |
Les Objets JavaScript | Les Objets JavaScript |
| |
En JavaScript, tout est un objet, même les fonctions sont des objets, ce qui, si vous êtes familier avec d'autres langages de programmation, peut sembler un peu étrange. Mais, ne vous inquiétez pas, cela donne un réel pouvoir à JavaScript. | En JavaScript, tout est un objet, même les fonctions sont des objets, ce qui, si vous avez l'habitude d'autres langages de programmation, peut sembler un peu étrange. Mais, ne vous inquiétez pas, cela donne un réel pouvoir à JavaScript. |
| |
JavaScript est un langage de programmation dynamique, ce qui signifie que les objets peuvent avoir différentes valeurs attribuées lors de l'exécution, sans aucun problème. Par exemple : | JavaScript est un langage de programmation dynamique, ce qui signifie que, sans aucun problème, les objets peuvent avoir différentes valeurs attribuées lors de l'exécution. Par exemple : |
| |
var monNom = "Greg"; | var monNom = "Greg"; |
| |
Comme vous pouvez le voir, il y a trois façons de créer des objets personnalisés : | Comme vous pouvez le voir, il y a trois façons de créer des objets personnalisés : |
• La première, appelée aussi JSON (JavaScript Object Notation), définit des objets en utilisant les accolades et spécifie les propriétés et leurs valeurs séparées par une virgule. | • La première, appelée aussi JSON (JavaScript Object Notation), définit des objets en utilisant les accolades et spécifie les propriétés et leurs valeurs séparées par deux points. |
• La deuxième option est d'utiliser l'opérateur . (point), et d'écrire le nom de la nouvelle propriété et lui attribuer une valeur. | • La deuxième option est d'utiliser l'opérateur . (point) et d'écrire le nom de la nouvelle propriété et lui attribuer une valeur. |
• La troisième option consiste à utiliser l'opérateur index [], qui reçoit une chaîne comme paramètre et une valeur à attribuer. Si vous connaissez d'autres langages de programmation, vous pouvez imaginer les objets JavaScript comme une sorte de dictionnaires spéciaux ou des « maps ». | • La troisième option consiste à utiliser l'opérateur index [], qui reçoit une chaîne comme paramètre et une valeur à attribuer. Si vous connaissez d'autres langages de programmation, vous pouvez imaginer les objets JavaScript comme des sortes de dictionnaires spéciaux ou des « maps ». |
| |
Les fonctions peuvent ou ne peuvent pas avoir des valeurs de retour. Dans le cas de la fonction isBiggerThan(), je n'ai pas spécifié de type de retour, ni qu'elle aura une valeur de retour, mais je pourrais facilement retourner une valeur booléenne (vrai ou faux), JavaScript le permet. | Les fonctions peuvent ou avoir des valeurs de retour ou pas. Dans le cas de la fonction isBiggerThan(), je n'ai pas spécifié de type de retour, ni qu'elle aura une valeur de retour, mais je pourrais facilement retourner une valeur booléenne (vrai ou faux) ; JavaScript le permet. |
| |
Comme exercice, vous pouvez créer d'autres objets qui simulent des objets de la vie réelle, comme une forêt qui a une fonction appelée planterArbres, qui reçoit un paramètre nbDArbres, et résume le nombre d'arbres dans la forêt. Ou elle peut stocker les différents types d'animaux qui vivent dans la forêt ; le sujet n'a pas vraiment d'importance, l'idée est de vous familiariser avec la notation objet et la création de fonction, que nous utiliserons beaucoup. | Comme exercice, vous pouvez créer d'autres objets qui simulent des objets de la vie réelle, comme une forêt qui a une fonction appelée planterArbres, qui reçoit un paramètre nbDArbres, et résume le nombre d'arbres dans la forêt. Ou elle peut stocker les différents types d'animaux qui vivent dans la forêt ; le sujet n'a pas vraiment d'importance, l'idée est de vous familiariser avec la notation objet et la création de fonction, que nous utiliserons beaucoup. |
Question : Ray a demandé comment on peut sélectionner certaines informations à partir d'un fichier, en particulier une base de données SQLite, en utilisant JavaScript. | Question : Ray a demandé comment on peut sélectionner certaines informations à partir d'un fichier, en particulier une base de données SQLite, en utilisant JavaScript. |
| |
Solution : Il y a deux approches, deux scénarios. Le premier est lorsque la base de données SQLite est disponible sur la machine cliente, là où le navigateur est exécuté. Dans ce cas, vous pouvez utiliser la bibliothèque SQL.js (https://github.com/kripken/sql.js/) pour charger les fichiers SQLite. Et vous pouvez même faire des requêtes et créer des schémas de données à l'aide de JavaScript. La page sur GitHub a de bons exemples de code ; vous pouvez commencer à utiliser ceux pour le chargement de votre base de données et le requêtage des données. | Solution : Il y a deux approches, deux scénarios. Le premier est lorsque la base de données SQLite est disponible sur la machine cliente, là où le navigateur s'exécute. Dans ce cas, vous pouvez utiliser la bibliothèque SQL.js (https://github.com/kripken/sql.js/) pour charger les fichiers SQLite. Et vous pouvez même faire des requêtes et créer des schémas de données à l'aide de JavaScript. La page sur GitHub a de bons exemples de code ; vous pouvez commencer à utiliser ceux-ci pour le chargement de votre base de données et l'interrogation des données. |
| |
Le deuxième scénario est lorsque la base de données SQLite est uniquement disponible sur le serveur Web et que le client y accède à travers Internet. Dans ce cas, vous devez avoir un composant côté serveur (qui peut être basé sur node.js) qui lit la base de données SQLite, et, en utilisant des requêtes HTTP, envoie les données au navigateur du client. Dans ce cas, le Javascript côté client est plus complexe, car il a besoin d'utiliser les appels AJAX pour charger les données. Voici un exemple de code node.js qui se connecte à une base de données SQLite, crée une nouvelle table si elle existe pas, et insère deux nouvelles entrées dans le tableau. Après l'insertion, il interroge la table et écrit les données sur la console. | Le deuxième scénario est lorsque la base de données SQLite est uniquement disponible sur le serveur Web et que le client y accède par Internet. Dans ce cas, vous devez avoir un composant côté serveur (qui peut être basé sur node.js) qui lit la base de données SQLite, et, en utilisant des requêtes HTTP, envoie les données au navigateur du client. Dans ce cas, le Javascript côté client est plus complexe, car il a besoin d'utiliser les appels AJAX pour charger les données. Voici un exemple de code node.js qui se connecte à une base de données SQLite, crée une nouvelle table si elle existe pas, et insère deux nouvelles entrées dans le tableau. Après l'insertion, il interroge la table et écrit les données sur la console. |
| |
====== 5 ====== | ====== 5 ====== |
La sortie devrait ressembler à celle représentée ci-dessus dans la ligne de commande (je l'exécutais sous Windows, mais la sortie est la même sous Linux, puisque node.js fonctionne de la même manière dans les deux environnements). | La sortie devrait ressembler à celle représentée ci-dessus dans la ligne de commande (je l'exécutais sous Windows, mais la sortie est la même sous Linux, puisque node.js fonctionne de la même manière dans les deux environnements). |
| |
Dans les prochains articles, je vous présenterai comment créer un nouveau serveur HTTP à l'aide de node, et comment transférer des données depuis le côté serveur vers le côté client - le tout en utilisant JavaScript. | Dans les prochains articles, je vous dirai comment créer un nouveau serveur HTTP à l'aide de node et comment transférer des données depuis le côté serveur vers le côté client - le tout en utilisant JavaScript. |
| |
Je serais heureux de vous entendre ; dites-moi quels sont les sujets qui vous intéresseraient autour de JavaScript. Sentez vous libres de m'envoyer vos idées de sujet, comme Ray l'a fait. Merci encore, Ray ! | Je serais heureux de vous entendre ; dites-moi quels sont les sujets qui vous intéresseraient autour de JavaScript. Sentez-vous libres de m'envoyer vos idées de sujet, comme Ray l'a fait. Merci encore, Ray ! |
| |
====== encadré page 21 ====== | ====== encadré page 21 ====== |
Si vous appelez cette fonction ainsi : | Si vous appelez cette fonction ainsi : |
maMaison.getInformation(); | maMaison.getInformation(); |
cela affichera : La maison fait 100 m2 big et a 3 pieces. | cela affichera : La maison fait 100 m2 et a 3 pieces. |
| |
Les fonctions peuvent avoir des paramètres: | Les fonctions peuvent avoir des paramètres: |
Nous pouvons appeler la fonction : | Nous pouvons appeler la fonction : |
maMaison.estPlusGrandeQue({taille:98}); | maMaison.estPlusGrandeQue({taille:98}); |
or | ou |
maMaison.estPlusGrandeQue({taille:198}); | maMaison.estPlusGrandeQue({taille:198}); |
| |