Tout à fait, le + est un fichu opérateur en javascript : - unaire : il transforme son argument en nombre (ou NaN si c'est impossible) - binaire : il effectue l'addition si ses deux arguments sont numériques ou la concaténation si une des valeurs est une chaîne.
Merci ;-)
C'est le but du newsgroup, partager ses connaissances !
Certes, mais tout le monde n'a pas nécessairement cet état d'esprit, et surtout tes connaissances :-)
J'ai beaucoup appris ainsi, particulièrement en suivant de temps à autre comp.lang.javascript (en anglais). Le ng n'est pas un service d'écriture de script à la demande, d'ailleurs j'évite soigneusement de répondre quand je flaire cette attente, d'autant qu'on a rarement un remerciement dans ce cas ou, s'il y en a un, c'est souvent qu'il précède une demande d'adaptation à ce besoin-ci et ce besoin-là...
Bien vu !
Ceci étant, je ne vais bientôt plus avoir grand chose à vous apprendre, assidus comme vous êtes ;-)
Ouh là ! On ne doit pas avoir la même définition du "bientôt". Faut dire que personnellement, le JS, c'est par période que je pratique. Je peux ne plus y toucher pendant 3 ou 6 mois, et là, ma mémoire défaille souvent ;-)
-- Christophe PEREZ Écrivez moi sans _faute !
Le Thu, 06 Oct 2005 20:03:14 +0200, YD a écrit:
Tout à fait, le + est un fichu opérateur en javascript :
- unaire : il transforme son argument en nombre (ou NaN si c'est impossible)
- binaire : il effectue l'addition si ses deux arguments sont numériques
ou la concaténation si une des valeurs est une chaîne.
Merci ;-)
C'est le but du newsgroup, partager ses connaissances !
Certes, mais tout le monde n'a pas nécessairement cet état d'esprit, et
surtout tes connaissances :-)
J'ai beaucoup appris
ainsi, particulièrement en suivant de temps à autre comp.lang.javascript (en
anglais). Le ng n'est pas un service d'écriture de script à la demande,
d'ailleurs j'évite soigneusement de répondre quand je flaire cette attente,
d'autant qu'on a rarement un remerciement dans ce cas ou, s'il y en a un, c'est
souvent qu'il précède une demande d'adaptation à ce besoin-ci et ce besoin-là...
Bien vu !
Ceci étant, je ne vais bientôt plus avoir grand chose à vous apprendre, assidus
comme vous êtes ;-)
Ouh là ! On ne doit pas avoir la même définition du "bientôt".
Faut dire que personnellement, le JS, c'est par période que je pratique.
Je peux ne plus y toucher pendant 3 ou 6 mois, et là, ma mémoire
défaille souvent ;-)
Tout à fait, le + est un fichu opérateur en javascript : - unaire : il transforme son argument en nombre (ou NaN si c'est impossible) - binaire : il effectue l'addition si ses deux arguments sont numériques ou la concaténation si une des valeurs est une chaîne.
Merci ;-)
C'est le but du newsgroup, partager ses connaissances !
Certes, mais tout le monde n'a pas nécessairement cet état d'esprit, et surtout tes connaissances :-)
J'ai beaucoup appris ainsi, particulièrement en suivant de temps à autre comp.lang.javascript (en anglais). Le ng n'est pas un service d'écriture de script à la demande, d'ailleurs j'évite soigneusement de répondre quand je flaire cette attente, d'autant qu'on a rarement un remerciement dans ce cas ou, s'il y en a un, c'est souvent qu'il précède une demande d'adaptation à ce besoin-ci et ce besoin-là...
Bien vu !
Ceci étant, je ne vais bientôt plus avoir grand chose à vous apprendre, assidus comme vous êtes ;-)
Ouh là ! On ne doit pas avoir la même définition du "bientôt". Faut dire que personnellement, le JS, c'est par période que je pratique. Je peux ne plus y toucher pendant 3 ou 6 mois, et là, ma mémoire défaille souvent ;-)
-- Christophe PEREZ Écrivez moi sans _faute !
ASM
Le Thu, 06 Oct 2005 09:15:38 +0200, O.L a écrit:
Tiens, je ne connaissais pas ... C'est le + de devant qui transforme la chaine en nombre ?
truc = Number(truc); ou truc = truc*1; ou truc = +truc; ou (si besoin) truc = -truc;
machin = 10 + -truc;
Est-ce que « machin = 10 - truc; » ne suffit pas ?
Personnellement, ne sachant pas que « +truc » suffisait à transformer une chaîne en nombre, j'utilisais « 0 + truc ».
notez dans vos carnets : passer un number en string sera le sujet de la prochaine interro
Oui, mais en hexadécimal : c'est beaucoup plus drôle.
-- Olivier Miakinen Non, monsieur le juge, je vous le jure : jamais je n'ai cité Bruxelles dans ma signature.
ASM
Est-ce que « machin = 10 - truc; » ne suffit pas ?
Ha ! je vois qu'on suit.
théoriquement non car par essence (cf + haut) la valeur d'un champ (nota : input=text) est une chaîne ou string cependant, comme il n'est pas prévu d'oter à une chaine une autre chaine par ce moyen il semblerait que le '-' garde sa valeur normale et ne s'applique qu'à des nombres (tendant par ce fait de transformer ce qu'on lui propose en nombre)
En tous cas pour le + la théorie devrait s'appliquer à tous coups en effet, puisqu'on ajoute une chaîne, le résultat devra être une chaine
demo :
<html><from> entrez un nombre ou une chaine de carateres ici : <input type=text name=entree> <p>resultat addition apres : <input type=text namednext> resultat addition avant : <input type=text namedprev> <p>resultat soustraction apres : <input type=text name=minnext> resultat soustraction avant : <input type=text name=minprev> <input type=button value=Aller onclick=" addnext.value = 10 + entree.value; addprev.value = entree.value + 10; minnext.value = 10 - entree.value; minprev.value = -entree.value + 10; "> </form></html>
notez dans vos carnets : passer un number en string sera le sujet de la prochaine interro
Oui, mais en hexadécimal : c'est beaucoup plus drôle.
Elève Miakinen passez au tableau montrer çà à vos camarades
-- Stephane Moriaux et son [moins] vieux Mac
Est-ce que « machin = 10 - truc; » ne suffit pas ?
Ha ! je vois qu'on suit.
théoriquement non car par essence (cf + haut)
la valeur d'un champ (nota : input=text) est une chaîne ou string
cependant, comme il n'est pas prévu d'oter à une chaine
une autre chaine par ce moyen il semblerait que le '-'
garde sa valeur normale et ne s'applique qu'à des nombres
(tendant par ce fait de transformer ce qu'on lui propose en nombre)
En tous cas pour le + la théorie devrait s'appliquer à tous coups
en effet,
puisqu'on ajoute une chaîne, le résultat devra être une chaine
demo :
<html><from>
entrez un nombre ou une chaine de carateres ici :
<input type=text name=entree>
<p>resultat addition apres :
<input type=text namednext>
resultat addition avant :
<input type=text namedprev>
<p>resultat soustraction apres :
<input type=text name=minnext>
resultat soustraction avant :
<input type=text name=minprev>
<input type=button value=Aller
onclick="
addnext.value = 10 + entree.value;
addprev.value = entree.value + 10;
minnext.value = 10 - entree.value;
minprev.value = -entree.value + 10;
">
</form></html>
notez dans vos carnets :
passer un number en string sera le sujet de la prochaine interro
Oui, mais en hexadécimal : c'est beaucoup plus drôle.
Elève Miakinen passez au tableau montrer çà à vos camarades
Est-ce que « machin = 10 - truc; » ne suffit pas ?
Ha ! je vois qu'on suit.
théoriquement non car par essence (cf + haut) la valeur d'un champ (nota : input=text) est une chaîne ou string cependant, comme il n'est pas prévu d'oter à une chaine une autre chaine par ce moyen il semblerait que le '-' garde sa valeur normale et ne s'applique qu'à des nombres (tendant par ce fait de transformer ce qu'on lui propose en nombre)
En tous cas pour le + la théorie devrait s'appliquer à tous coups en effet, puisqu'on ajoute une chaîne, le résultat devra être une chaine
demo :
<html><from> entrez un nombre ou une chaine de carateres ici : <input type=text name=entree> <p>resultat addition apres : <input type=text namednext> resultat addition avant : <input type=text namedprev> <p>resultat soustraction apres : <input type=text name=minnext> resultat soustraction avant : <input type=text name=minprev> <input type=button value=Aller onclick=" addnext.value = 10 + entree.value; addprev.value = entree.value + 10; minnext.value = 10 - entree.value; minprev.value = -entree.value + 10; "> </form></html>
notez dans vos carnets : passer un number en string sera le sujet de la prochaine interro
Oui, mais en hexadécimal : c'est beaucoup plus drôle.
Elève Miakinen passez au tableau montrer çà à vos camarades
-- Stephane Moriaux et son [moins] vieux Mac
O.L.
Personnellement, ne sachant pas que « +truc » suffisait à transformer une chaîne en nombre, j'utilisais « 0 + truc ».
Et ça ne te faisait pas une concaténation, justement ? Chez moi JS est si peu malin que quand je lui demande : alert(0+"1234"); Il me répond : "01234" ...
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
Personnellement, ne sachant pas que « +truc » suffisait à transformer
une chaîne en nombre, j'utilisais « 0 + truc ».
Et ça ne te faisait pas une concaténation, justement ?
Chez moi JS est si peu malin que quand je lui demande :
alert(0+"1234");
Il me répond : "01234" ...
--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net
Personnellement, ne sachant pas que « +truc » suffisait à transformer une chaîne en nombre, j'utilisais « 0 + truc ».
Et ça ne te faisait pas une concaténation, justement ? Chez moi JS est si peu malin que quand je lui demande : alert(0+"1234"); Il me répond : "01234" ...
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
Olivier Miakinen
Personnellement, ne sachant pas que « +truc » suffisait à transformer une chaîne en nombre, j'utilisais « 0 + truc ».
Et ça ne te faisait pas une concaténation, justement ?
Maintenant que tu le dis (et ASM aussi)... en effet ça n'avait pas fonctionné et j'avais remplacé 0+chaine par Number(chaine). À l'occasion je remplacerai ça par +chaine.
-- Olivier Miakinen Non, monsieur le juge, je vous le jure : jamais je n'ai cité Bruxelles dans ma signature.
Personnellement, ne sachant pas que « +truc » suffisait à transformer
une chaîne en nombre, j'utilisais « 0 + truc ».
Et ça ne te faisait pas une concaténation, justement ?
Maintenant que tu le dis (et ASM aussi)... en effet ça n'avait pas
fonctionné et j'avais remplacé 0+chaine par Number(chaine). À l'occasion
je remplacerai ça par +chaine.
--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.
Personnellement, ne sachant pas que « +truc » suffisait à transformer une chaîne en nombre, j'utilisais « 0 + truc ».
Et ça ne te faisait pas une concaténation, justement ?
Maintenant que tu le dis (et ASM aussi)... en effet ça n'avait pas fonctionné et j'avais remplacé 0+chaine par Number(chaine). À l'occasion je remplacerai ça par +chaine.
-- Olivier Miakinen Non, monsieur le juge, je vous le jure : jamais je n'ai cité Bruxelles dans ma signature.
ASM
Chez moi JS est si peu malin que quand je lui demande : alert(0+"1234"); Il me répond : "01234" ...
il te réponds exactement ce que tu lui as demandé ajouter la chaine '01234' à 0 '0' considéré comme un caractère de par le fait
essayer avec : +'12345' + 0; ou : 0 + +'12345'; // à tous z'azars
-- Stephane Moriaux et son [moins] vieux Mac
Chez moi JS est si peu malin que quand je lui demande :
alert(0+"1234");
Il me répond : "01234" ...
il te réponds exactement ce que tu lui as demandé
ajouter la chaine '01234' à 0
'0' considéré comme un caractère de par le fait
essayer avec : +'12345' + 0;
ou : 0 + +'12345'; // à tous z'azars
Chez moi JS est si peu malin que quand je lui demande : alert(0+"1234"); Il me répond : "01234" ...
il te réponds exactement ce que tu lui as demandé ajouter la chaine '01234' à 0 '0' considéré comme un caractère de par le fait
essayer avec : +'12345' + 0; ou : 0 + +'12345'; // à tous z'azars
-- Stephane Moriaux et son [moins] vieux Mac
Olivier Miakinen
notez dans vos carnets : passer un number en string sera le sujet de la prochaine interro
Oui, mais en hexadécimal : c'est beaucoup plus drôle.
Elève Miakinen passez au tableau montrer çà à vos camarades
Dans ma page sur les charsets, j'avais besoin d'afficher des nombres hexa sur 2 chiffres (la position d'un caractère dans la table) et sur 4 chiffres (le code Unicode). Du coup, j'ai écrit ceci :
Mais habituellement on cherche plutôt à afficher les nombres quelle que soit leur longueur en commençant par le premier chiffre non nul. Du coup, un truc comme ça devrait fonctionner pour les nombres positifs (non testé, et à étendre aux entiers négatifs, voire aux flottants) :
-- Olivier Miakinen Non, monsieur le juge, je vous le jure : jamais je n'ai cité Bruxelles dans ma signature.
notez dans vos carnets :
passer un number en string sera le sujet de la prochaine interro
Oui, mais en hexadécimal : c'est beaucoup plus drôle.
Elève Miakinen passez au tableau montrer çà à vos camarades
Dans ma page sur les charsets, j'avais besoin d'afficher des nombres
hexa sur 2 chiffres (la position d'un caractère dans la table) et sur
4 chiffres (le code Unicode). Du coup, j'ai écrit ceci :
Mais habituellement on cherche plutôt à afficher les nombres quelle que
soit leur longueur en commençant par le premier chiffre non nul. Du
coup, un truc comme ça devrait fonctionner pour les nombres positifs
(non testé, et à étendre aux entiers négatifs, voire aux flottants) :
notez dans vos carnets : passer un number en string sera le sujet de la prochaine interro
Oui, mais en hexadécimal : c'est beaucoup plus drôle.
Elève Miakinen passez au tableau montrer çà à vos camarades
Dans ma page sur les charsets, j'avais besoin d'afficher des nombres hexa sur 2 chiffres (la position d'un caractère dans la table) et sur 4 chiffres (le code Unicode). Du coup, j'ai écrit ceci :
Mais habituellement on cherche plutôt à afficher les nombres quelle que soit leur longueur en commençant par le premier chiffre non nul. Du coup, un truc comme ça devrait fonctionner pour les nombres positifs (non testé, et à étendre aux entiers négatifs, voire aux flottants) :