javaScript by notion (2)
javaScript by notion (2)
I. I ntroduction :
le fichier app.js dans un dossier js frère de dossier css dans public , tout d’abord il doit liée le
fichier javascript (.js) par la commande suivante(dernier ligne de Body) :
<body>
<script src="./public/js/app.js"></script>
</body>
Java Script 1
II. 1-Numbers :
Java Script 2
console.log(Math.ceil(x)); // augmenter x : 9 (si x = 8.1 donc le résultat c'est 9
console.log(Math.floor(x)); // diminue x : 8 (si x = -8.1 donc le résultat c'est -9
console.log(Math.trunc(x)); // enlever "," : 8 (si x = 8.1 donc le résultat c'est 8)
// console.log(parseInt(x)); autre méthode de trunc
console.log(Math.random()); // choisi un nombre aléatoire entre 0 et 1
console.log(Math.random()*100); // choisi un nombre aléatoire entre 0 et 100
console.log(Math.floor(Math.random( )*100));
console.log(Math.pow(8, 2)); // puissance : huit a puissance deux c'est 64
console.log(Math.sqrt(9)); // la rascine carré de 9 c'est 3
console.log(Math.abs(-1)); // la valeur absolu de moins un c'est un
console.log(Math.max(-2, 1000, 8, 57)); // le maximum c'est 1000
console.log(Math.min(-2, 1000, 8, 57)); //le minimum c'est -2
Java Script 3
b2 = temp2 ;
//resultat : 4 3 2 1
II. 2-String :
Java Script 4
console.log(codingSchool.indexOf("s")); // juste le première !!!
// 6. Log word that starts at index 3 and includes the next 7 characters.
console.log(codingSchool.substring(3,10));
// 7. Log the string with the word "school" replaced by "bootcamp".
console.log(codingSchool.replace("schooL", "bootcamp"));
// 8. Log the array obtained by splitting the string into words.
console.log(codingSchool.split(` `));
// 9. Log the second word in the string.
console.log(codingSchool.split(" ")[1]); // transfere les mots en array et affich
// 10. Log the string in reverse.
console.log(codingSchool.split("").reverse().join("")); // inversé un string !!!
// splite("") : transperé le string en array par chaque caractere
// reverce() : pour reversé l' array
// join("") : pour transferé l'array en string (le contraire de splite("")
// Note: The codingSchool variable remains unchanged after each operation.
//## replace :
let paragraph = "I think Ruth's dog is cuter than your dog!";
console.log(paragraph.replace("Ruth's", 'my'));
// Expected output: "I think my dog is cuter than your dog!"
//## repeat :
let mood = 'Happy! ';
console.log(`I feel ${mood.repeat(3)}`);
// Expected output: "I feel Happy! Happy! Happy! "
//## padStart :
Java Script 5
let maskedNumber = last4Digits.padStart(fullNumber.length, '*');
console.log(maskedNumber);
// Expected output: "************5581"
//## padEnd :
let str1 = 'Breaded Mushrooms';
console.log(str1.padEnd(25, '.')); // ecrire "str1" et des points (jusqu'a length =
// Expected output: "Breaded Mushrooms........"
let str2 = '200';
console.log(str2.padEnd(5)); // Nous n'avons pas précisé par quoi cela se term
// Expected output: "200 " // ecrire "str2" + 2 espace (espace par défaut !)
Java Script 6
let z = x==y ; // false
let w = 4==5 ; // false
let a = 6>3 ; // true
II. 4-Array :
Java Script 7
tableau[1] = tableau[2];
tableau[2] = temp ;
console.log(tableau[0], tableau[1], tableau[2], tableau[3]);
// resultat : 4 3 2 1
//## length :
let fruits = ["Banana", "Orange", "Apple", "Mango"];
let length = fruits.length; // le nombre des élément d'un array dans ce cas éga
console.log (fruits[0] ) ; // Banana !!! length = index + 1 !!!
fruits.push("Lemon"); // ajouter nouveau élément "Lemon" au fruits
fruits[fruits.length] = "Lemon"; // autre méthode
Java Script 8
namesArray.unshift ( "l3arbi", "Zoe", ); //ajouter élément ou plus ou départ d'a
console.log(namesArray);
// 7. Array Expected Outputs: "l3arbi-Zoe-Bob-bouch3ayb-David-Frank-Grac
console.log(namesArray.join('-'));
let additionalNames = ["Hank", "Ivy"];
// 9. Array Expected Outputs: ["l3arbi", "Zoe", <1 empty item>, "bouch3ayb",
namesArray = namesArray.concat(additionalNames) ; // ajouter les élément de
namesArray.push.apply(namesArray , additionalNames) // même chose
delete namesArray[2] ;
console.log(namesArray);
Java Script 9
// Expected output: 10 (la somme de tout les éléments de l'array plus la valeur
//5.Includes :
let array1 = [1, 2, 3];
console.log(array1.includes(2));
// Expected output: true
let pets = ['cat', 'dog', 'bat'];
console.log(pets.includes('cat'));
// Expected output: true
console.log(pets.includes('at'));
// Expected output: false
// resultat sous forme fe confermation si l'élément exist ou non (boolean) .
//6.Sort :
classement des éléments d'un array :
let months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// Expected output: Array ["Dec", "Feb", "Jan", "March"] résultat avec l'order a
let array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// Expected output: Array [1, 100000, 21, 30, 4] résultat avec comme l'order a
let array2 = [1, 30, 4, 21, 100000];
array2.sort((a, b) => b - a); // classé les éléments de manière décroissante
// array2.sort((a, b) => a - b); // classé les éléments de manière croissante
console.log(array2);
// Expected output: Array [ 100000, 30 , 21 , 4 ,1] résultat avec comme l'order
II. 5-Object :
Java Script 10
job : "student" ,
}
// On peut ajouter d'autre propriétés par les méthodes suivantes :
//méthode 1 :
Achraf.friend = ["ismail" , "hamza" , "hamza" , "zakaria" , "larbi" , "zouhair"]
//méthode 2 :
Achraf["friend"] = ["ismail" , "hamza" , "hamza" , "zakaria" , "larbi" , "zouhai
//méthode 3 :
Object.assign(Achraf , {friend :["ismail" , "hamza" , "hamza" , "zakaria" , "lar
hello() {
console.log(`Hello ${this.name} and my age is ${this.age}`);
}
Java Script 11
// création d'un nouveau class à partir d'un encient class :
//! contient les même propiétés plus d'autres .
class Student extends Person {
constructor(name , age , city , note){
super(name , age , city)
this.note = note
}
// exemples :
// exemple1 : Object.keys and Object.values
let achraf = {
firstName: "achraf",
lastName : "gasbi",
id : 5566,
coures : [{s1 : 13.46 ,
s2 : 15 ,
master : [ 14.21 , {name : 'mécanique énergétique' ,
faculty : 'faculty of sciences benmsik' }]}]
}
console.log(Object.keys(achraf.coures[0].master[1])[0]); // name
console.log(Object.values(achraf.coures[0].master[1])[0]); // mécanique énerg
console.log(Object.keys(achraf.coures[0].master[1])[1]); //faculty
console.log(Object.values(achraf.coures[0].master[1])[1]); //faculty of science
// exemple 2 : Object.assign
let target = { a: 1, b: 2 };
Java Script 12
let source = { b: 4, c: 5 };
let returnedTarget = Object.assign(target, source);
console.log(target);
// Expected output: Object { a: 1, b: 4, c: 5 }
// exemple 3 : object.hasOwnProperty
let object1 = {};
object1.property1 = 42;
console.log(object1.hasOwnProperty('property1'));
// Expected output: true (boolean)
III. Conditions :
III. 1-introduction :
III. 2-Exemples :
III.2-1 Exemple 1 :
let x = Math.floor(Math.random()*10) ;
let y = Math.floor(Math.random()*10) ;
let x_fois_y = x*y ;
multi =prompt(`ecrivez la bonne reponse : ${x} * ${y} = `)
multi = Number(multi) ;
Java Script 13
console.log(multi);
let reponse = Math.abs (multi - x_fois_y) ;
if (multi == x_fois_y) {
console.log(`félicitations, la réponse était bien`);
}else {
alert (`C'est dommage, tu n'étais qu'a ${reponse} unité de la bonne réponse
}
IV. Boucles :
Java Script 14
III. 1-Boucle for :
III.1-1 For :
Java Script 15
// boucle for par défaut :
for (let index = 0; index < array.length; index++) {
let element = array[index];
}
// En générale :
for (`condition pour refaire la boucle si la condition true `) {
// code ...
}
⇒ Exemple :
// séparer les éléments ça dépond de leur type :
let donnees = [14, 7, 97, {}, "247", 67, 101, true, 34, 78, [], 'coding school', 0, 11,
let typeString = [];
let typeNumber = [];
let typeObject = [];
let typeAutre = [];
for (let index = 0; index < donnees.length; index++) {
let element = donnees[index];
let type = typeof element;
if (type == "string") {
typeString.push(element);
} else if (type == 'number') {
typeNumber.push(element);
} else if (type == 'object') {
typeObject.push(element);
} else {
typeAutre.push(element);
}
}
console.log(typeString);
console.log(typeNumber);
console.log(typeObject);
console.log(typeAutre);
Java Script 16
III.1-2 Foreach (cas particulier):
// boucle foreach par défaut (pour tous les élément d'un array ):
array.forEach(element => {
// code ....
});
⇒ Exemple :
// mettre le premier et la dernier character en majuscule :
let table = ["acHRaf" , "hamza" , "zakaria" , "wissal" , "youness" , "ibrahim" , "
table.forEach(element => {
let index = table.indexOf(element)
element = element.toLowerCase() ;
let x = parseInt(element.length) -1 ;
let firstlettre = element[0].toUpperCase() ;
let lastlettre = element[x].toUpperCase() ;
let meddle = element.slice(1,-1) ;
element = firstlettre+meddle+lastlettre ;
table[index] = element ;
III.2-1 While :
while (condition) {
⇒ Exemple :
8. Exo 08
- Demandez a l'utlisateur de remplir un panier de fruit jusqu'a en
obtenir 8
- Quand son panier est rempli montrez lui, puis demandez lui si il
désire retirer un fruit
- Si il met le nom d'un fruit alors le fruit est retiré, on lui montre son
Java Script 17
nouveau panier puis on lui repose la question, si il met autre chose que
le nom d'un fruit alors on lui dit "Merci bon appétit" .
- Chaque fruit entré par l'utilisateur doit finir par être orthographié
avec une première lettre majuscule et le reste en minuscule
- Lui montrer son panier avec la première lettre en majuscule .
let i = 0;
let fruits = [];
while (i < 4) {
let ask_fruit = prompt(`entrer le nom de fruit`);
fruits.push(ask_fruit);
i++;
}
alert(fruits.join(' , '))
console.log(fruits.join(' , '));
ask_ok = prompt(`est ce que vous voulez de supprimer un élément ?`);
while (true) {
if (ask_ok == 'oui' || ask_ok == 'yes') {
let name_vgb = prompt(`entrer le nom de fruit que vous voulez supprimer
let index = fruits.indexOf(`${name_vgb}`);
console.log(index);
fruits.splice(index, 1);
console.log(fruits);
let secondAsk = prompt(`est que vous voulez supprimer autre fruit ?`)
while (true) {
if (secondAsk == 'oui') {
let name_vgb2 = prompt(`entrer le nom de fruit que vous voulez supp
let index2 = fruits.indexOf(`${name_vgb2}`);
console.log(index2);
fruits.splice(index2, 1);
console.log(fruits);
break
} else {
console.log(`merci bon appetit`);
break
}
}
Java Script 18
} else if (ask_ok == 'non' || ask_ok == 'no') {
console.log(`d'accord merci`);
} else {
console.log(`le non que vous avez choisi n'est pas existe`);
}
break
V. Fonction (Function) :
function name(params) {
⇒ Exemple :
// Outil mathématique (factorielle(x!) : 5! = 5 x 4 x 3 x 2 x 1 = 120 :
function factoriel(params) { // déclaration de fonction avec son nom (factoriel)
params = parseInt(prompt(`enter number`)) ;
let i= params ;
let table = [] ;
while (i > 0) {
table.push(i) ;
i--
}
let result = 1
for (let index = 0; index < table.length; index++) {
let element = table[index];
result *= element ;
console.log(result);
}
Java Script 19
}
factoriel() //appel de fonction
Data Representation:
(done)For each student, calculate the average grade across all their
Java Script 20
courses.
Add a new property to each student object to store their calculated
average grade.
Course Analysis:
Print the university object and the results of each analysis function to
the console.
⇒ Correction :
// * Complex Problem Statement: Data Processing and Analysis
//* creation de la base de donner
let university = {
nameUniv: 'universite hassan 2',
Java Script 21
location: 'N°51, HAY IFRIQUIA RUE ECHAHID ELOUALID ESSAGHIR, Casabla
students: [{
studentId: 1,
studentName: 'achraf GASBI',
age: 23,
courses: [{
mat: 15,
svt: 15,
pc: 10,
python: 12,
catia: 16,
js: 13
}]
},
{
studentId: 2,
studentName: 'ismail OUTMAGHOST',
age: 22,
courses: [{
mat: 10,
pc: 10,
svt: 15,
lanC: 12
}]
},
{
studentId: 3,
studentName: 'hamza OUFKIR',
age: 20,
courses: [{
mat: 12,
pc: 10,
svt: 15,
eco: 13
}]
},
{
studentId: 4,
Java Script 22
studentName: 'zakaria DAHAR',
age: 18,
courses: [{
mat: 8,
pc: 10,
svt: 15,
bio: 8
}]
},
{
studentId: 5,
studentName: 'redouane FOUZI',
age: 26,
courses: [{
mat: 16,
pc: 10,
svt: 15,
flambage: 19,
catia: 15
}]
}
]
};
//* Solution :
// ^Part 1 calculate the average :
console.log(`*************************** Part 1 : calculate the average ******
let averageGeneral = [];
for (let index = 0; index < university.students.length ; index++) {
let somme = 0
for (let i = 0; i < Object.keys(university.students[index].courses[0]).length; i
let element = Object.values(university.students[index].courses[0])[i] ;
somme += element ;
Java Script 23
// console.log(somme/Object.keys(university.students[index].courses[0]).le
university.students[index].average = somme/Object.keys(university.student
averageGeneral.push(university.students[index].average) ;
averageGeneral.sort((a, b) => b - a);
// console.log(`dddddddddddddddddddddd`);
// console.log(averageGeneral);
console.log(university);
console.log(`***************************fin Part 1 : calculate the average ****
getCourseStatistics ('mat')
getCourseStatistics ('pc')
getCourseStatistics ('svt')
getCourseStatistics ('catia')
getCourseStatistics ('js')
Java Script 24
console.log(`***************** fin part 2 : function called getCourseStatistics
Java Script 25
}else if (agevariable >= 26 && agevariable<=30) {
age2630.push(`L'id ${Idvariable} c'est ${namevariable} a ${agevariabl
}
}
console.log(`les candidats entre 18 et 20 ans sont : ${age1820}`);
console.log(`les candidats entre 21 et 25 ans sont : ${age2125}`);
console.log(`les candidats entre 26 et 30 ans sont : ${age2630}`);
}
getAgeDistribution ()
Java Script 26
</div>
<script>
// Initialize Quill editor
var quill = new Quill('#editor', {
theme: 'snow'
});
Java Script 27