Bonjour, j'essaye de faire l'exercice avec ce code là :
export class Book {
constructor(title,author,description,pages,currentPage,read){
this.title=title;
this.author=author;
this.description=description;
this.pages=pages;
this.currentPage=currentPage;
this.read=read;
}
readBook(page){
if (page<1 || page>this.pages)
return 0;
else if (page>=1 && page<this.pages){
this.currentPage=page;
return 1;
}
else if (page==this.pages){
this.currentPage=page;
this.read=true;
return 1;
}
}
}
let hamlet = new Book('Hamlet','Shakespeare','description Hamlet',288,288,true);
let othello = new Book('Othello','Shakespeare','description Othello',256,10,false);
let antigone = new Book('Antigone','Anouilh','description antigone',120,120,true);
let aneantir = new Book('Anéantir','Houellebeck','description aneantir',700,0,false);
export const books = [];
books.push(hamlet,othello,antigone,aneantir);
Et tout se passe bien, j'ai tous les livres dans "Restful Reading", avec la jauge qui se remplit quand je met un nombre de page plus grand et les livres qui vont dans la rubrique "Lu". Mais je n'ai pas la réponse qui s'affiche à la fin... j'ai juste le carrousel gris et vide comme ça :
Est-ce que vous avez une idée de ce que mon code a ou n'a pas pour que ça marche complètement ?
Salut Florian, désolé pour la réponse tardive, le problème vient du fait que tu as déjà dans tes paramètres des livres qui sont en état "lu" et la current page sur la dernière. Donc impossible de faire les étapes de test demandés.
Essai avec ces paramètres :
let hamlet = new Book('Hamlet','Shakespeare','description Hamlet',288,10,false);
let othello = new Book('Othello','Shakespeare','description Othello',256,10,false);
let antigone = new Book('Antigone','Anouilh','description antigone',120,10,false);
export const books = [];
books.push(hamlet,othello,antigone);
Salut Florian, désolé pour la réponse tardive, le problème vient du fait que tu as déjà dans tes paramètres des livres qui sont en état "lu" et la current page sur la dernière. Donc impossible de faire les étapes de test demandés.
Essai avec ces paramètres :
let hamlet = new Book('Hamlet','Shakespeare','description Hamlet',288,10,false);
let othello = new Book('Othello','Shakespeare','description Othello',256,10,false);
let antigone = new Book('Antigone','Anouilh','description antigone',120,10,false);
export const books = [];
books.push(hamlet,othello,antigone);
Merci NadfriJS pour la correction ! Je suis allé voir ta chaine Youtube, c'est marrant, j'ai aussi travaillé dans la fibre optique et j'entame à présent ma reconversion dans l'IT.
Alex si on se base sur le schéma de son prof i part de 0 et la condition passera à faux uniquement si i supérieur a 10 donc 11donc on ira bien de 0 à 10 donc 11 passagers.
Ce que représente la boucle js elle recevra 10 passager soit il s'est trompé soit la boucle agit sur i et on le voit pas dans le morceau partagé
r Pour moi sur ce schéma, la boucle remet a zéro la variable i avant chaque itération puis la compare à 10 et l'incrémente avant de la remettre à zero etc etc... cela bouclera donc à l'infini ... le bout de code fourni ensuite fonctionne comme un vraie boucle qui bouclera 10 fois. c'est pourquoi j'ai mis ce message, je me regarde que peu les picto et je préfère me référer à du code pour mieux comprendre. et clairement là, l'image est pas terrible pour la compréhension.\
j'ai exactement le même problème ... c'est fatiguant, même si je ne débute pas complètement le dev, je suis neophyte sous JS et ce cours est un bon gruyère, meme si ça aide a se faire la main et des recherches google, là le dernier exo ça devient chiant de passer des heures a tout refaire pour se rendre compte que le problème vient de la sandbox...
ps: j'ai eu de la chance sur le choix de la réponse au hasard...
Bonjour , je bloque sur un truc concernant le cours sur le Java Script, en effet , je n'ai pas compris à servent le " " quand ils sont tout seul , sans rien entre les guillemets .
Et ça me bloque un peu pour la suite, mais j'ai l'impression que ca sert à crée une valeur , mais après je vois ou on peut la nommer , ou peut être ça se nomme dans la ligne qui suit ?
Bonjour , je bloque sur un truc concernant le cours sur le Java Script, en effet , je n'ai pas compris à servent le " " quand ils sont tout seul , sans rien entre les guillemets .
Et ça me bloque un peu pour la suite, mais j'ai l'impression que ca sert à crée une valeur , mais après je vois ou on peut la nommer , ou peut être ça se nomme dans la ligne qui suit ?
Salut hamid, Je ne sais pas exactement de quelle partie du cours tu parles. cependant " " renvoie un espace qui sera intégré dans la chaine de caractères. Si il s'agit des espaces situé dans la correction d un exercice sur les fonctions, celui où le corrigé donne des fonctions fléchées qui n'ont jamais été abordées dans le cours je ne sais pas pourquoi il a mit des espace car j'ai réussi à faire fonctionner mon code de manière propre sans fonction fléchées.
Désolé d'avoir mit du temps a te répondre, ne suivant plus ces formations je ne reviens plus trop sur OCR.
Bonjour je bloque sur le P6, j'en suis à la fin et j'aurais besoin d'aide
J’ai des erreurs que je ne comprends pas, même après plusieurs vérification de mon code:
Je peux créer 1 sauce, toutes les sauces s’affichent sur mon frontend, mais quand je clique sur la page d’une sauce, il n’y a rien qui s’affiche et je ne peux donc, ni modifier, ni supprimer la sauce créé j’ai un message d’erreur dans ma console (cf image), se rapportant a un fichier du frontend : single-sauce.component.ts ???
Et à l’adresse localhost :3000, j’ai un « CANNOT GET » +300/api/sauces : « error »,
je pense que le probleme vient de là, non ?
Une idée d’où cela pourrait venir? 1 coup de main serait le bienvenu car là je ne sais plus quoi faire, ca fait des jours que je tourne en rond…
Et comme on dit, d’autres yeux avertis peuvent peut-être trouver l’erreur que je n’ai pas vu….
const (a la place de let car le resultat d une operation avec seulement des constantes est une constante) minutesPerDay = (hoursPerDay * minutesPerHour);
merci si a la potencielle personne qui me repondra
Ne comprenant pas, j'ai finalement jeté un coup d'œil à la correction (https://codepen.io/quentin-laurent/pen/oNYVwbb) qui était sensiblement la même chose que ma réponse. Pour vérifier, j'ai copié le JS correction dans le JS exercice et il renvoie la même erreur.
Je pense qu'il s'agit d'une erreur dans une partie cachée du CodePen.
Autre remarque, mais pas gênant : le CodePen de l'exercice et celui de sa correction affichent "Caclculer" au lieu de "Calculer".
J'ai une question concernant la partie sur la refactorisation du code. Un des premiers exemples crée une fonction pour afficher un message d'accueil pour les utilisateurs. Je dois avouer que je ne comprends pas du tout la première ligne :
Je suppose qu'il dois s'agir d'une façon "condensée" de définir une fonction...
Quelqu'un pourrait m'éclairer sur le fonctionnement de cette ligne ?
Je comprends ainsi : const nomDeLaFonction = (paramètre) => {fonction}
-> pourquoi const ?
-> pourquoi le mot clé function n'apparait pas ?
-> à quoi servent les signes = et => ?
const sendWelcomeMessageToUser = (user) => {
if (user.online) {
if (user.accountType === "normal") {
console.log("Hello " + user.name + "!");
} else {
console.log("Welcome back premium user " + user.name + "!");
}
}
}
sendWelcomeMessageToUser(firstUser);
sendWelcomeMessageToUser(secondUser);
sendWelcomeMessageToUser(thirdUser);
J'ai moi-même galéré au dernier exo avec les livres lus et leur progression, en fait la subtilité est dans l'énoncé, il faut faire les actions dans l'ordre et livre par livre :
Pour tester votre méthode instance readBook , suivez ces instructions pour trois livres
Livre 1: mettez à jour la page actuelle avec une page valable qui est inférieure au nombre total de pages
puis
Livre 2: mettez à jour la page actuelle avec une page valable inférieure au nombre total de pages
puis
Livre 3: mettez à jour la page actuelle avec une page valable inférieure au nombre total de pages
Ensuite :
Livre 1 : mettez à jour la page actuelle avec exactement le nombre de pages total du livre (le livre devrait disparaître du carousel et apparaître dans la liste "Lus")
puis
Livre 2 : mettez à jour la page actuelle avec exactement le nombre de pages total du livre (le livre devrait disparaître du carousel)
puis
Livre 3 : mettez à jour la page actuelle avec exactement le nombre de pages total du livre (le livre devrait disparaître du carousel)
Bonjour, dire exactement où ça bloque serait mieux. Mais bon en soit la notion de fonctions n'est pas compliquée.
Une fonction sert à contenir un bloc de code. Le but est de pouvoir executer ce blog de code en faisant appel à la fonction au lieu de copier / coller partout où on en a besoin.
Pour faire l'exemple imaginons qu'on veut quelque chose qui mettra en majuscule la première lettre de tous les mots d'une phrase (capitalize) on aura un bout de code qui ressemblera à (la compréhension du code n'est pas obligatoire)
let phrase = "Salut j'apprend sur Oc"
//notre code serait donc
phrase = phrase.split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1) ).join(' ')
maintenant sur une seule phrase c'est bien mais si on aimerait appliquer ce bout de code à plusieurs phrases comment on fait ? copier / coller. Ce qui va créer de la redondance dans le code . A la place on peut creer une fonction qui fera cette action (retenir qu'une fonction sert à faire une action particuliere) puis l'appeller elle sur chaque phrases
on peut definir une fonction de deux manières
const my_func = () => {}
function my_func() {} // cette syntaxe te conviendra mieux en débutant
Notre code devient donc
function capitalize(sentence)
{
return sentence.split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1) ).join(' ')
// grace a return tu retournes donc la nouvelle phrase que l'appelant de la fonction pourra traiter comme il souhaite
}
//ou
const capitalize = (sentence) => sentence.split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1) ).join(' ')
maintenant on peut appeller la fonction sur n'importe quelle phrase et via return elle retournera la phrase avec les premières lettres majuscules
console.log(capitalize('test de ma fonction') )
let ma_nouvelle_phrase = capitalize('mon ancienne phrase')
Par ailleurs, le cours nous apprend a créer des classes mais pour être honnête je ne sais pas si c'est utile aux néophytes (comme moi) qui se lancent dans JS.
.
Pour être plus clair, tout le crédit qui est donné aux classes c'est que l'on peut créer des méthodes d'instances et des méthodes statiques, mais en a t'on vraiment besoin quand on débute en JS ?
.
Par exemple, on peut très bien remplacer les classes (qui sont en fait des fonctions...) par des fonctions constructeur si le but est (comme dans ce cours) de simplement créer des instances d'objets :
Plus propre, plus lisible et peut-être même plus facile à maintenir à terme ?
.
Sans parler du fait que si vous importez / créez une classe après que celle-ci soit appelée dans votre code, vous aurez une erreur undefined, tandis qu'une fonction on peut la déclarer et l'appeler de n'importe où dans le code.
.
Je pense que les classes sont plus utiles pour regrouper un nombre important de fonctions et/ou si vous avez absolument besoin d'utiliser des méthodes statiques, mais c'est à mon sens une utilisation plus avancée de JS, pas certain que ce soit un sujet pour un débutant ?
Tu tombes dans l'erreur que je reproche souvent aux gens qui débutent ( je ne sais pas si c'est ton cas)
Les cours ne sont pas faits en tous cas j'espere pour intégrer des notions dans la tête. Je m'explique.
Un cours (pour debutant) est fait pour acquérir les fondamentaux du langage, que la personne doit entrainer de son côté, ne pas s'en tenir aux exercices et lui ouvrir la porte aux fonctionnalités plus avancées.
Après ses bases acquises ( ex: comment declarer une variable, instructions conditionnelles ect) on présente des notions utiles (ici les class), quand on débute justement on peut à base du savoir qu'on pense avoir acquis faire de mauvaises choses et rester dedans car on a pas conscience de ce qui peut etre fait d'autres, a reflechir comme ça on reste débutant à vie tout simplement.
Si en finissant ton cours js tu as appris à faire
for(let i =0; i < tableau.length;i++)
c'est ce que tu utiliseras pour parcourir un tableau tant que tu n'as pas conscience de forEach qui est fait pour
Savoir que les class existent à titre d'exemple t'emmenera a comme tu le fais maintenant chercher à savoir quelles en ont les utilité... ( en js les framework par exemple) une autre utilité plus générale est que la notion de class est global à la programmation, avoir base de cette notion facilite l'apprentissage des bases ailleurs.
"Par exemple, on peut très bien remplacer les classes (qui sont en fait des fonctions...) par des fonctions constructeur si le but est (comme dans ce cours) de simplement créer des instances d'objets"
Le cours introduit aux notions, il ne va pas te demander d'implémenter un mvc quand tu viens de découvrir les class et surtout decouvrir de nouvelles notions si tous le cours s'en tient aux fonctions on tourne en rond
Plus propre, plus lisible et peut-être même plus facile à maintenir à terme
Non du tout quand on commence a imbriquer des fonctions l'une dans l'autre c'est tout sauf lisible, transpose ce genre d'utilisation dans un réel projet.
> Sans parler du fait que si vous importez / créez une classe après que celle-ci soit appelée dans votre code, vous aurez une erreur undefined, tandis qu'une fonction on peut la déclarer et l'appeler de n'importe où dans le code.
c'est simplement mal coder, les erreurs du développeur ne sont pas les erreurs des fonctionnalités. La portée est une notion de base.
>
Qu'en pensez-vous ?
En bref les cours pour débutants sont fait pour faire progresser le débutant lui apprendre les notions de base et lui faire découvrir les notions utiles sinon la personne stagnera.
Après sur le fait qu'on peut en js remplacer les class par les fonctions, dans une utilisation basique oui c'est vrai surtout vu la liberté que js offre aux fonctions
Bonjour à tous ! Je n'avais pas vu qu'un sujet avait été créer pour ce cours, je viens donc poser mon problème ici, que j'avais posé sur un sujet que j'avais créer il y a 3 jours, avec seulement 1 seule réponse qui s'est retrouvé supprimé car la personne n'avait pas mis le code dans le bouton code prévu à cet effet. Je me permets donc de poser mon problème ici, avec des screenshots et du code bien sur, en esperant que vous puissiez m'aider. Merci d'avance pour vos réponses.
Bonjour à tous. Je suis au TP de validation du module "Apprenez à programmer avec JavaScript, ou le but est d'aider à réaliser un guide de suivi de livres lues ou non. J'ai réalisé le code de celui-ci, que je vais vous montrer juste ici :
export class Book {
constructor(title, author, description, pages, currentPage, read) {
this.title = title;
this.author = author;
this.description = description;
this.pages = pages;
this.currentPage = currentPage;
this.read = read;
}
readBook(page) {
if(page > 1 || page >this.pages)
return 0;
if(page > 0 && < this.pages) {
this.currentPage = page;
return 1;
}
if (page == this.pages) {
this.currentPage = page;
this.read = true;
return 1;
}
}
}
const livre1 = new Book("Les Chevaliers d'Emeraude Tome 1: Le Feu dans le Ciel", "Anne Robillard", "Fantasy",325, 131, false);
const livre2 = new Book("Les Chevaliers d'Emeraude Tome 2: Les Dragons de L'Empreur Noir", "Anne Robillard", "Fantasy",435 , 0, false);
const livre3 = new Book( "Les Chevaliers d'Emeraude Tome 3: Piege au Royaume des Ombres", "Anne Robillard", "Fantasy",425 , 0, false);
export const books = [livre1, livre2, livre3];
Ce code doit afficher les livres dans un carrousel, que je vais vous montrer ici :
Le problème est qu'il n'y en a pas, il n'y a aucune erreur affiché dans le code, mais pourtant les livres ne s'affichent pas dans le carrousel. Pourriez-vous m'aider s'il vous plaît ? Merci d'avance pour vos réponses. Si vous avez des questions ou des demandes n'hésitez pas je vous répondrai le mieux possible.
Cordialement,
Florian
Update : J'ai modifié mon code car j'ai regardé la vidéo de NadfriJS et j'ai vu qu'il y avait quelques erreurs que j'ai modifié. Mais malgré la modification de mon code, qui est le même que celui de sa vidéo,hormis les livres qui sont différents, rien ne change, le carrousel ne se mets toujours pas à jour. Si vous voyez des erreurs dans le code je suis preneur. Merci d'avances pour vos réponses.
- Edité par Florian0985 16 septembre 2022 à 17:05:09
4. Récupérez les éléments de type li qui sont dans une liste ul ayant la classe important . Cette liste doit elle-même être dans un article (article ) ;
...
il me semble qu'on doit recuperer "le premier element", et non pas "les elements", etant donné la question 5 : "En reprenant le résultat de la tâche précédente, récupérez l'élément li suivant de la liste ul ." -> si on a recuperé "les elements" avec `.querySelectorAll()` il n'y a pas vraiment "d'element suivant"
Edit : Ok c'est juste que la page ne s'actualisait pas automatiquement contrairement à tous les autres exercices que j'ai fait auparavant... voilà, voilà. Je vais me jeter par la fenêtre et je reviens.
Bonjour,
J'ai un petit soucis sur l'exercice des conditions dans le chapitre 2 sur l'introduction au JS.
C'est le fameux exercice où on doit mettre en conditions si age<ageMajorite on refuse l'accès. Et bien il m'arrive quelque chose de plutôt étrange.
Sur codepen, là où a lieu l'exercice, et bien quand je tapais le bon code dans la page codepen de l'exercice (pen/poNQNdY) rien ne se passait, le script ne s'exécutait pas.
Du coup j'ai copié-collé le code entier du javascript de la page solution codepen (pen/eYBQoMr) dans la page du codepen de l'exercice, me disant que je m'étais ptêt gourré quelque part dans mon code.
Et bah vous savez quoi ? Le script ne s'exécute toujours pas. Alors que le code fonctionne sur la page solution du codepen, mais pas sur la page codepen de l'exercice. Je précise que j'ai supprimé tout mon code JS et ensuite remplacé par le code entier de la page solution.
Est-ce que quelqu'un peut éclairer ma lanterne ? C'est codepen qui déconne ou bien ?
Pourquoi est-ce que cela fonctionne sur la page solution du codepen mais pas sur la page exercice du codepen, alors que les deux codes sont identiques ?
- Edité par MathieuGérard2 2 novembre 2022 à 16:25:12
La meilleure solution est toujours la plus simple. Ma chaîne Youtube [Tutos pour débutants]
yasakani no magatama
yasakani no magatama
GD
yasakani no magatama
yasakani no magatama
yasakani no magatama
yasakani no magatama