Je me suis mis en tête pour m'améliorer en JS de tenter de faire un petit code simple qui consiste a faire trouver un nombre a l'utilisateur.
j'initialise ma variable "try" qui sera le nombre d'essais qu'a l'utilisateur, je la déclare normalement, comme variable, mais visiblement ça chie dans la console... quelqu'un peux m'expliquer ce qui va pas avec ma ligne 2 ?
le code:
PS : Ne me corrigez pas pour le reste du code en commentaire, même s'il y a des fautes ou que j'ai mal écrit pour le moment, merci.
(Vous pouvez me dire si je suis sur la bonne voie ou non, par contre)
c'est mal parti si ma 1ere ligne qui est une simple variable chie dans la colle ![]()
ah par contre j'aurai aussi aimé savoir comment déclarer que je veux que ma variable soit un nombre quand je l'initialise ? (et non pas une chaine de caractère par défault)
J'ai essayé
let nombre:number = math...;
let try:number = 3;
let reponse:number;Mais il comprend pas le :number non plus, ça n'existe pas ?
"try" est un mot clé du langage, tu peux pas l'utiliser comme nom de variable.
try et catch sont des mots clefs du langage qui servent a gerer les exceptions ; il y a donc surement une confusion sur les symboles. Essaye simplement de renommer la variable en qqch de plus explicite et de non-exclusif.
Il y a quelques petites erreurs mais la logique est là, tu fais bien d’essayer de les résoudres par toi même, c’est comme ça qu’on progresse le mieux.
Si jamais tu bloques vraiment n’hésite pas à revenir demander sur le topic ![]()
Le 06 juillet 2022 à 00:48:29 :
ah par contre j'aurai aussi aimé savoir comment déclarer que je veux que ma variable soit un nombre quand je l'initialise ? (et non pas une chaine de caractère par défault)
J'ai essayélet nombre:number = math...; let try:number = 3; let reponse:number;Mais il comprend pas le :number non plus, ça n'existe pas ?
Effectivement en JavaScript ce n’est pas possible de typer ses variables (c’est justement pour ça qu’une surcouche a été inventée, le typeScript)
Par contre en js les variables n’ont pas de type par défaut, elles prennent le type de ce que tu mets dedans.
Si t’as une chaine de caractère c’est sûrement car prompt renvoi du texte, il te faut le convertir avant de l’attribuer à ta variable.
Le 06 juillet 2022 à 02:34:14 :
Il y a quelques petites erreurs mais la logique est là, tu fais bien d’essayer de les résoudres par toi même, c’est comme ça qu’on progresse le mieux.Si jamais tu bloques vraiment n’hésite pas à revenir demander sur le topic
![]()
Le 06 juillet 2022 à 02:36:33 :
Le 06 juillet 2022 à 00:48:29 :
ah par contre j'aurai aussi aimé savoir comment déclarer que je veux que ma variable soit un nombre quand je l'initialise ? (et non pas une chaine de caractère par défault)
J'ai essayélet nombre:number = math...; let try:number = 3; let reponse:number;Mais il comprend pas le :number non plus, ça n'existe pas ?
Effectivement en JavaScript ce n’est pas possible de typer ses variables (c’est justement pour ça qu’une surcouche a été inventée, le typeScript)
Par contre en js les variables n’ont pas de type par défaut, elles prennent le type de ce que tu mets dedans.
Si t’as une chaine de caractère c’est sûrement car prompt renvoi du texte, il te faut le convertir avant de l’attribuer à ta variable.
ok je comprends mieux, donc pas besoin de me soucier sur mon type de variable. Mais du coup j'ai une autre question, pourquoi on recommande d'utiliser === plutôt que == alors ?
J'ai cru comprendre que === vérifie que le type de variable et son contenu soit identique a la comparaison, mais si JS définis par default la variable par rapport a son contenu, == marche tout le temps aussi, non ?
Le 07 juillet 2022 à 13:02:40 :
Le 06 juillet 2022 à 02:34:14 :
Il y a quelques petites erreurs mais la logique est là, tu fais bien d’essayer de les résoudres par toi même, c’est comme ça qu’on progresse le mieux.Si jamais tu bloques vraiment n’hésite pas à revenir demander sur le topic
Le 06 juillet 2022 à 02:36:33 :
Le 06 juillet 2022 à 00:48:29 :
ah par contre j'aurai aussi aimé savoir comment déclarer que je veux que ma variable soit un nombre quand je l'initialise ? (et non pas une chaine de caractère par défault)
J'ai essayélet nombre:number = math...; let try:number = 3; let reponse:number;Mais il comprend pas le :number non plus, ça n'existe pas ?
Effectivement en JavaScript ce n’est pas possible de typer ses variables (c’est justement pour ça qu’une surcouche a été inventée, le typeScript)
Par contre en js les variables n’ont pas de type par défaut, elles prennent le type de ce que tu mets dedans.
Si t’as une chaine de caractère c’est sûrement car prompt renvoi du texte, il te faut le convertir avant de l’attribuer à ta variable.
ok je comprends mieux, donc pas besoin de me soucier sur mon type de variable. Mais du coup j'ai une autre question, pourquoi on recommande d'utiliser === plutôt que == alors ?
J'ai cru comprendre que === vérifie que le type de variable et son contenu soit identique a la comparaison, mais si JS définis par default la variable par rapport a son contenu, == marche tout le temps aussi, non ?
Je n’ai pas tout les exemples en tête mais je sais que cette expression renvoie vrai : 2 == ”2“
Alors que celle-ci renvoie faux : 2 === ”2”
Le 07 juillet 2022 à 13:05:01 :
Le 07 juillet 2022 à 13:02:40 :
Le 06 juillet 2022 à 02:34:14 :
Il y a quelques petites erreurs mais la logique est là, tu fais bien d’essayer de les résoudres par toi même, c’est comme ça qu’on progresse le mieux.Si jamais tu bloques vraiment n’hésite pas à revenir demander sur le topic
Le 06 juillet 2022 à 02:36:33 :
Le 06 juillet 2022 à 00:48:29 :
ah par contre j'aurai aussi aimé savoir comment déclarer que je veux que ma variable soit un nombre quand je l'initialise ? (et non pas une chaine de caractère par défault)
J'ai essayélet nombre:number = math...; let try:number = 3; let reponse:number;Mais il comprend pas le :number non plus, ça n'existe pas ?
Effectivement en JavaScript ce n’est pas possible de typer ses variables (c’est justement pour ça qu’une surcouche a été inventée, le typeScript)
Par contre en js les variables n’ont pas de type par défaut, elles prennent le type de ce que tu mets dedans.
Si t’as une chaine de caractère c’est sûrement car prompt renvoi du texte, il te faut le convertir avant de l’attribuer à ta variable.
ok je comprends mieux, donc pas besoin de me soucier sur mon type de variable. Mais du coup j'ai une autre question, pourquoi on recommande d'utiliser === plutôt que == alors ?
J'ai cru comprendre que === vérifie que le type de variable et son contenu soit identique a la comparaison, mais si JS définis par default la variable par rapport a son contenu, == marche tout le temps aussi, non ?
Je n’ai pas tout les exemples en tête mais je sais que cette expression renvoie vrai : 2 == ”2“
Alors que celle-ci renvoie faux : 2 === ”2”
c'est ça que je comprends pas, si js change le type de variable via la donnée stockée, pourquoi 2 serait faux sur === ?
Le 07 juillet 2022 à 13:10:03 :
Le 07 juillet 2022 à 13:05:01 :
Le 07 juillet 2022 à 13:02:40 :
Le 06 juillet 2022 à 02:34:14 :
Il y a quelques petites erreurs mais la logique est là, tu fais bien d’essayer de les résoudres par toi même, c’est comme ça qu’on progresse le mieux.Si jamais tu bloques vraiment n’hésite pas à revenir demander sur le topic
Le 06 juillet 2022 à 02:36:33 :
Le 06 juillet 2022 à 00:48:29 :
ah par contre j'aurai aussi aimé savoir comment déclarer que je veux que ma variable soit un nombre quand je l'initialise ? (et non pas une chaine de caractère par défault)
J'ai essayélet nombre:number = math...; let try:number = 3; let reponse:number;Mais il comprend pas le :number non plus, ça n'existe pas ?
Effectivement en JavaScript ce n’est pas possible de typer ses variables (c’est justement pour ça qu’une surcouche a été inventée, le typeScript)
Par contre en js les variables n’ont pas de type par défaut, elles prennent le type de ce que tu mets dedans.
Si t’as une chaine de caractère c’est sûrement car prompt renvoi du texte, il te faut le convertir avant de l’attribuer à ta variable.
ok je comprends mieux, donc pas besoin de me soucier sur mon type de variable. Mais du coup j'ai une autre question, pourquoi on recommande d'utiliser === plutôt que == alors ?
J'ai cru comprendre que === vérifie que le type de variable et son contenu soit identique a la comparaison, mais si JS définis par default la variable par rapport a son contenu, == marche tout le temps aussi, non ?
Je n’ai pas tout les exemples en tête mais je sais que cette expression renvoie vrai : 2 == ”2“
Alors que celle-ci renvoie faux : 2 === ”2”
c'est ça que je comprends pas, si js change le type de variable via la donnée stockée, pourquoi 2 serait faux sur === ?
Si tu changes le type de la variable ça veut dire que tu test 2 === 2 donc ça vaut vrai
Pour que tu comprennes, imagine tu fais un prompt où tu change pas le type de la variable, tu écris 2 dans le prompt et tu stock donc ”2” dans ta variable sans faire de conversion.
Tu pourras faire une comparaison entre ta variable qui contient un 2 de type string avec un autre 2 de type number, si c’est des double egal ça vaudra vrai et si c’est des triple ça vaudra faux
Le 07 juillet 2022 à 13:35:27 :
Le 07 juillet 2022 à 13:10:03 :
Le 07 juillet 2022 à 13:05:01 :
Le 07 juillet 2022 à 13:02:40 :
Le 06 juillet 2022 à 02:34:14 :
Il y a quelques petites erreurs mais la logique est là, tu fais bien d’essayer de les résoudres par toi même, c’est comme ça qu’on progresse le mieux.Si jamais tu bloques vraiment n’hésite pas à revenir demander sur le topic
Le 06 juillet 2022 à 02:36:33 :
> Le 06 juillet 2022 à 00:48:29 :
>ah par contre j'aurai aussi aimé savoir comment déclarer que je veux que ma variable soit un nombre quand je l'initialise ? (et non pas une chaine de caractère par défault)
> J'ai essayé
>
>
let nombre:number = math...; > let try:number = 3; > let reponse:number;>
> Mais il comprend pas le :number non plus, ça n'existe pas ?
Effectivement en JavaScript ce n’est pas possible de typer ses variables (c’est justement pour ça qu’une surcouche a été inventée, le typeScript)
Par contre en js les variables n’ont pas de type par défaut, elles prennent le type de ce que tu mets dedans.
Si t’as une chaine de caractère c’est sûrement car prompt renvoi du texte, il te faut le convertir avant de l’attribuer à ta variable.
ok je comprends mieux, donc pas besoin de me soucier sur mon type de variable. Mais du coup j'ai une autre question, pourquoi on recommande d'utiliser === plutôt que == alors ?
J'ai cru comprendre que === vérifie que le type de variable et son contenu soit identique a la comparaison, mais si JS définis par default la variable par rapport a son contenu, == marche tout le temps aussi, non ?
Je n’ai pas tout les exemples en tête mais je sais que cette expression renvoie vrai : 2 == ”2“
Alors que celle-ci renvoie faux : 2 === ”2”
c'est ça que je comprends pas, si js change le type de variable via la donnée stockée, pourquoi 2 serait faux sur === ?
Si tu changes le type de la variable ça veut dire que tu test 2 === 2 donc ça vaut vrai
Pour que tu comprennes, imagine tu fais un prompt où tu change pas le type de la variable, tu écris 2 dans le prompt et tu stock donc ”2” dans ta variable sans faire de conversion.
Tu pourras faire une comparaison entre ta variable qui contient un 2 de type string avec un autre 2 de type number, si c’est des double egal ça vaudra vrai et si c’est des triple ça vaudra faux
Mais du coup comment je dis que si j'ai mis 2 dans une variable string, que je veux qu'il soit considéré comme un nombre ? pour que === retourne true ?
Le 07 juillet 2022 à 13:43:52 :
Le 07 juillet 2022 à 13:35:27 :
Le 07 juillet 2022 à 13:10:03 :
Le 07 juillet 2022 à 13:05:01 :
Le 07 juillet 2022 à 13:02:40 :
> Le 06 juillet 2022 à 02:34:14 :
>Il y a quelques petites erreurs mais la logique est là, tu fais bien d’essayer de les résoudres par toi même, c’est comme ça qu’on progresse le mieux.
>
> Si jamais tu bloques vraiment n’hésite pas à revenir demander sur le topic
> Le 06 juillet 2022 à 02:36:33 :
>> Le 06 juillet 2022 à 00:48:29 :
> >ah par contre j'aurai aussi aimé savoir comment déclarer que je veux que ma variable soit un nombre quand je l'initialise ? (et non pas une chaine de caractère par défault)
> > J'ai essayé
> >
> >
let nombre:number = math...; > > let try:number = 3; > > let reponse:number;> >
> > Mais il comprend pas le :number non plus, ça n'existe pas ?
>
> Effectivement en JavaScript ce n’est pas possible de typer ses variables (c’est justement pour ça qu’une surcouche a été inventée, le typeScript)
>
> Par contre en js les variables n’ont pas de type par défaut, elles prennent le type de ce que tu mets dedans.
>
> Si t’as une chaine de caractère c’est sûrement car prompt renvoi du texte, il te faut le convertir avant de l’attribuer à ta variable.
ok je comprends mieux, donc pas besoin de me soucier sur mon type de variable. Mais du coup j'ai une autre question, pourquoi on recommande d'utiliser === plutôt que == alors ?
J'ai cru comprendre que === vérifie que le type de variable et son contenu soit identique a la comparaison, mais si JS définis par default la variable par rapport a son contenu, == marche tout le temps aussi, non ?
Je n’ai pas tout les exemples en tête mais je sais que cette expression renvoie vrai : 2 == ”2“
Alors que celle-ci renvoie faux : 2 === ”2”
c'est ça que je comprends pas, si js change le type de variable via la donnée stockée, pourquoi 2 serait faux sur === ?
Si tu changes le type de la variable ça veut dire que tu test 2 === 2 donc ça vaut vrai
Pour que tu comprennes, imagine tu fais un prompt où tu change pas le type de la variable, tu écris 2 dans le prompt et tu stock donc ”2” dans ta variable sans faire de conversion.
Tu pourras faire une comparaison entre ta variable qui contient un 2 de type string avec un autre 2 de type number, si c’est des double egal ça vaudra vrai et si c’est des triple ça vaudra faux
Mais du coup comment je dis que si j'ai mis 2 dans une variable string, que je veux qu'il soit considéré comme un nombre ? pour que === retourne true ?
Bon on va reprendre depuis le début je sens que tu t’embrouilles 😆
En js les variables n’obtiennent un type que lorsqu’on y mets quelque chose à l’intérieur, une fois remplis, la variable devient du type de ce qu’on y a mis.
Mais le type de la variable rechange si on y mets quelques chose d’autre à l’intérieur, c’est un typage dynamique.
Ensuite les nombres existent en 2 exemplaires, soit de type nombre soit de type string (2, ”2”).
Prompt ne renvoie que du string donc jamais de type nombre (”2”).
pour donner un example avec prompt ça ressemblerait à ça pour convertir et stocker le nombre puis exécuter du code si ça vaut 2 :
let maVariableDeTypeNombre = Number(prompt(”entrez une valeur : ”));
if(maVariableDeTypeNombre === 2){
//mon code
}