merci beaucoup ! -- « Il faut bien agiter le peuple avant de s'en servir » (Talleyrand)
Dr J R Stockton
En fr.comp.lang.javascript message <1kafrad.1ewyn6rts1jliN%unbewusst.sei , Mardi, 8 Nov 2011 22:50:12, Une Bévue a ecrit:
je fais un Parsint sur "<" qui me donne NaN, normal. si je regarde typeof du résultat ça me donne number.
on peut détecter NaN comment ?
par : machin = parseInt("<", 10); if(machin === NaN) { faire ce qu'il faut... }
NaN est inégale à tout, même NaN. C'est pourquoi isNaN existe. Ou :
if (machin != machin) { // c'est peut-etre un peu plus vite // ECMA 262 5.1 15.1.2.4 NOTE
Aussi, souvent, +S est egale a parseInt(S, 10).
Cordialement,
-- (c) John Stockton, nr London, UK. ?@merlyn.demon.co.uk Turnpike v6.05. Website <http://www.merlyn.demon.co.uk/> - w. FAQish topics, links, acronyms PAS EXE etc. : <http://www.merlyn.demon.co.uk/programs/> - see in 00index.htm Dates - miscdate.htm estrdate.htm js-dates.htm pas-time.htm critdate.htm etc.
En fr.comp.lang.javascript message <1kafrad.1ewyn6rts1jliN%unbewusst.sei
n@fai.invalid>, Mardi, 8 Nov 2011 22:50:12, Une Bévue
<unbewusst.sein@fai.invalid> a ecrit:
je fais un Parsint sur "<" qui me donne NaN, normal.
si je regarde typeof du résultat ça me donne number.
on peut détecter NaN comment ?
par :
machin = parseInt("<", 10);
if(machin === NaN) {
faire ce qu'il faut...
}
NaN est inégale à tout, même NaN. C'est pourquoi isNaN existe. Ou :
if (machin != machin) { // c'est peut-etre un peu plus vite
// ECMA 262 5.1 15.1.2.4 NOTE
Aussi, souvent, +S est egale a parseInt(S, 10).
Cordialement,
--
(c) John Stockton, nr London, UK. ?@merlyn.demon.co.uk Turnpike v6.05.
Website <http://www.merlyn.demon.co.uk/> - w. FAQish topics, links, acronyms
PAS EXE etc. : <http://www.merlyn.demon.co.uk/programs/> - see in 00index.htm
Dates - miscdate.htm estrdate.htm js-dates.htm pas-time.htm critdate.htm etc.
En fr.comp.lang.javascript message <1kafrad.1ewyn6rts1jliN%unbewusst.sei , Mardi, 8 Nov 2011 22:50:12, Une Bévue a ecrit:
je fais un Parsint sur "<" qui me donne NaN, normal. si je regarde typeof du résultat ça me donne number.
on peut détecter NaN comment ?
par : machin = parseInt("<", 10); if(machin === NaN) { faire ce qu'il faut... }
NaN est inégale à tout, même NaN. C'est pourquoi isNaN existe. Ou :
if (machin != machin) { // c'est peut-etre un peu plus vite // ECMA 262 5.1 15.1.2.4 NOTE
Aussi, souvent, +S est egale a parseInt(S, 10).
Cordialement,
-- (c) John Stockton, nr London, UK. ?@merlyn.demon.co.uk Turnpike v6.05. Website <http://www.merlyn.demon.co.uk/> - w. FAQish topics, links, acronyms PAS EXE etc. : <http://www.merlyn.demon.co.uk/programs/> - see in 00index.htm Dates - miscdate.htm estrdate.htm js-dates.htm pas-time.htm critdate.htm etc.
Une Bévue
On 10/11/2011 21:33, Dr J R Stockton wrote:
NaN est inégale à tout, même NaN. C'est pourquoi isNaN existe. Ou :
if (machin != machin) { // c'est peut-etre un peu plus vite // ECMA 262 5.1 15.1.2.4 NOTE
oui mais pourquoi est-ce une fonction (isNaN(an-expected-number) plutôt qu'une mùéthode (an-expected-number.isNaN())
???
On 10/11/2011 21:33, Dr J R Stockton wrote:
NaN est inégale à tout, même NaN. C'est pourquoi isNaN existe. Ou :
if (machin != machin) { // c'est peut-etre un peu plus vite
// ECMA 262 5.1 15.1.2.4 NOTE
oui mais pourquoi est-ce une fonction (isNaN(an-expected-number)
plutôt qu'une mùéthode (an-expected-number.isNaN())
NaN est inégale à tout, même NaN. C'est pourquoi isNaN existe. Ou :
if (machin != machin) { // c'est peut-etre un peu plus vite // ECMA 262 5.1 15.1.2.4 NOTE
oui mais pourquoi est-ce une fonction (isNaN(an-expected-number) plutôt qu'une mùéthode (an-expected-number.isNaN())
???
Elegie
On 11/11/2011 07:17, Une Bévue wrote :
Hello,
oui mais pourquoi est-ce une fonction (isNaN(an-expected-number) plutôt qu'une mùéthode (an-expected-number.isNaN())
Dans la mesure où isNaN peut être appliqué à n'importe quel objet, il est plus judicieux d'en encapsuler la fonctionnalité à part, i.e. d'en faire une méthode statique (qui applique un algorithme indépendant à un argument donné) plutôt qu'une méthode d'instance (qui requiert un contexte particulier pour fonctionner, i.e. l'instance elle-même).
Pour le formuler autrement, ajouter isNaN à tous les objets javascript - par exemple en l'ajoutant sur le dernier objet de la chaîne des prototypes, de façon à le rendre disponible pour tous les objets javascript - est certainement possible, mais alourdirait d'autant les fonctionnalités portées par cet objet (pollution de l'API).
Par ailleurs, que pensez-vous des deux affirmations suivantes: - en javascript, toutes les fonctions peuvent être vues comme des méthodes. Les fonctions déclarées globalement sont simplement des méthodes de l'objet global. - toutes les fonctions sont des objets, qui implémentent simplement une interface "callable", qui les augmente de méthodes telles que "call", "apply", et d'imaginaires setBody (), setFreeVariables().
Bonne journée!
On 11/11/2011 07:17, Une Bévue wrote :
Hello,
oui mais pourquoi est-ce une fonction (isNaN(an-expected-number)
plutôt qu'une mùéthode (an-expected-number.isNaN())
Dans la mesure où isNaN peut être appliqué à n'importe quel objet, il
est plus judicieux d'en encapsuler la fonctionnalité à part, i.e. d'en
faire une méthode statique (qui applique un algorithme indépendant à un
argument donné) plutôt qu'une méthode d'instance (qui requiert un
contexte particulier pour fonctionner, i.e. l'instance elle-même).
Pour le formuler autrement, ajouter isNaN à tous les objets javascript -
par exemple en l'ajoutant sur le dernier objet de la chaîne des
prototypes, de façon à le rendre disponible pour tous les objets
javascript - est certainement possible, mais alourdirait d'autant les
fonctionnalités portées par cet objet (pollution de l'API).
Par ailleurs, que pensez-vous des deux affirmations suivantes:
- en javascript, toutes les fonctions peuvent être vues comme des
méthodes. Les fonctions déclarées globalement sont simplement des
méthodes de l'objet global.
- toutes les fonctions sont des objets, qui implémentent simplement une
interface "callable", qui les augmente de méthodes telles que "call",
"apply", et d'imaginaires setBody (), setFreeVariables().
oui mais pourquoi est-ce une fonction (isNaN(an-expected-number) plutôt qu'une mùéthode (an-expected-number.isNaN())
Dans la mesure où isNaN peut être appliqué à n'importe quel objet, il est plus judicieux d'en encapsuler la fonctionnalité à part, i.e. d'en faire une méthode statique (qui applique un algorithme indépendant à un argument donné) plutôt qu'une méthode d'instance (qui requiert un contexte particulier pour fonctionner, i.e. l'instance elle-même).
Pour le formuler autrement, ajouter isNaN à tous les objets javascript - par exemple en l'ajoutant sur le dernier objet de la chaîne des prototypes, de façon à le rendre disponible pour tous les objets javascript - est certainement possible, mais alourdirait d'autant les fonctionnalités portées par cet objet (pollution de l'API).
Par ailleurs, que pensez-vous des deux affirmations suivantes: - en javascript, toutes les fonctions peuvent être vues comme des méthodes. Les fonctions déclarées globalement sont simplement des méthodes de l'objet global. - toutes les fonctions sont des objets, qui implémentent simplement une interface "callable", qui les augmente de méthodes telles que "call", "apply", et d'imaginaires setBody (), setFreeVariables().
Bonne journée!
Elegie
On 11/11/2011 14:33, Elegie wrote :
Pour le formuler autrement, ajouter isNaN à tous les objets javascript - par exemple en l'ajoutant sur le dernier objet de la chaîne des prototypes, de façon à le rendre disponible pour tous les objets javascript - est certainement possible, mais alourdirait d'autant les fonctionnalités portées par cet objet (pollution de l'API).
Écrivons maintenant courageusement la documentation:
Cheval(name): - Constructeur renvoyant un cheval. Le nom du cheval est passé en paramètre.
Cheval.galope(): - méthode permettant au cheval de galoper.
Cheval.isNaN(): - méthode qui permet de savoir si le cheval est égal à NaN. // <-- WTF?
Bien à vous, Elegie.
On 11/11/2011 14:33, Elegie wrote :
Pour le formuler autrement, ajouter isNaN à tous les objets javascript -
par exemple en l'ajoutant sur le dernier objet de la chaîne des
prototypes, de façon à le rendre disponible pour tous les objets
javascript - est certainement possible, mais alourdirait d'autant les
fonctionnalités portées par cet objet (pollution de l'API).
Pour le formuler autrement, ajouter isNaN à tous les objets javascript - par exemple en l'ajoutant sur le dernier objet de la chaîne des prototypes, de façon à le rendre disponible pour tous les objets javascript - est certainement possible, mais alourdirait d'autant les fonctionnalités portées par cet objet (pollution de l'API).
Écrivons maintenant courageusement la documentation:
Cheval(name): - Constructeur renvoyant un cheval. Le nom du cheval est passé en paramètre.
Cheval.galope(): - méthode permettant au cheval de galoper.
Cheval.isNaN(): - méthode qui permet de savoir si le cheval est égal à NaN. // <-- WTF?
Bien à vous, Elegie.
SAM
Le 11/11/11 15:47, Elegie a écrit :
On 11/11/2011 14:33, Elegie wrote :
Pour le formuler autrement, ajouter isNaN à tous les objets javascript - par exemple en l'ajoutant sur le dernier objet de la chaîne des prototypes, de façon à le rendre disponible pour tous les objets javascript - est certainement possible, mais alourdirait d'autant les fonctionnalités portées par cet objet (pollution de l'API).
Ou, pour illustrer:
J'a n'a rien compris !
surtout à : "WTF" ... Wagon de Transport Ferroviaire ?
Écrivons maintenant courageusement la documentation:
Cheval(name): - Constructeur renvoyant un cheval. Le nom du cheval est passé en paramètre.
Cheval.galope(): - méthode permettant au cheval de galoper.
Cheval.isNaN(): - méthode qui permet de savoir si le cheval est égal à NaN. // <-- WTF?
-- Stéphane Moriaux avec/with iMac-intel
Le 11/11/11 15:47, Elegie a écrit :
On 11/11/2011 14:33, Elegie wrote :
Pour le formuler autrement, ajouter isNaN à tous les objets javascript -
par exemple en l'ajoutant sur le dernier objet de la chaîne des
prototypes, de façon à le rendre disponible pour tous les objets
javascript - est certainement possible, mais alourdirait d'autant les
fonctionnalités portées par cet objet (pollution de l'API).
Ou, pour illustrer:
J'a n'a rien compris !
surtout à : "WTF" ... Wagon de Transport Ferroviaire ?
Pour le formuler autrement, ajouter isNaN à tous les objets javascript - par exemple en l'ajoutant sur le dernier objet de la chaîne des prototypes, de façon à le rendre disponible pour tous les objets javascript - est certainement possible, mais alourdirait d'autant les fonctionnalités portées par cet objet (pollution de l'API).
Ou, pour illustrer:
J'a n'a rien compris !
surtout à : "WTF" ... Wagon de Transport Ferroviaire ?
Ce n'était qu'un raccourci de documentation. Dans les faits, il faudrait engendrer un cheval (la méthode galope() est une méthode d'instance).
--- var Tonnerre = new Cheval("Tonnerre"); Tonnerre.galope(); ---
Bye, Elegie.
Une Bévue
Le 11/11/2011 14:33, Elegie a écrit :
oui mais pourquoi est-ce une fonction (isNaN(an-expected-number) plutôt qu'une mùéthode (an-expected-number.isNaN())
Dans la mesure où isNaN peut être appliqué à n'importe quel objet, il est plus judicieux d'en encapsuler la fonctionnalité à part, i.e. d'en faire une méthode statique (qui applique un algorithme indépendant à un argument donné) plutôt qu'une méthode d'instance (qui requiert un contexte particulier pour fonctionner, i.e. l'instance elle-même).
ah oui, suis-je bête, je n'avais pas vu cette bonne raison...
Le 11/11/2011 14:33, Elegie a écrit :
oui mais pourquoi est-ce une fonction (isNaN(an-expected-number)
plutôt qu'une mùéthode (an-expected-number.isNaN())
Dans la mesure où isNaN peut être appliqué à n'importe quel objet, il
est plus judicieux d'en encapsuler la fonctionnalité à part, i.e. d'en
faire une méthode statique (qui applique un algorithme indépendant à un
argument donné) plutôt qu'une méthode d'instance (qui requiert un
contexte particulier pour fonctionner, i.e. l'instance elle-même).
ah oui, suis-je bête, je n'avais pas vu cette bonne raison...
oui mais pourquoi est-ce une fonction (isNaN(an-expected-number) plutôt qu'une mùéthode (an-expected-number.isNaN())
Dans la mesure où isNaN peut être appliqué à n'importe quel objet, il est plus judicieux d'en encapsuler la fonctionnalité à part, i.e. d'en faire une méthode statique (qui applique un algorithme indépendant à un argument donné) plutôt qu'une méthode d'instance (qui requiert un contexte particulier pour fonctionner, i.e. l'instance elle-même).
ah oui, suis-je bête, je n'avais pas vu cette bonne raison...
Olivier Miakinen
Le 11/11/2011 14:33, Elegie répondait à Une Bévue :
oui mais pourquoi est-ce une fonction (isNaN(an-expected-number) plutôt qu'une méthode (an-expected-number.isNaN())
Dans la mesure où isNaN peut être appliqué à n'importe quel objet, il est plus judicieux d'en encapsuler la fonctionnalité à part, i.e. d'en faire une méthode statique (qui applique un algorithme indépendant à un argument donné) plutôt qu'une méthode d'instance (qui requiert un contexte particulier pour fonctionner, i.e. l'instance elle-même).
Pour le formuler autrement, ajouter isNaN à tous les objets javascript - par exemple en l'ajoutant sur le dernier objet de la chaîne des prototypes, de façon à le rendre disponible pour tous les objets javascript - est certainement possible, mais alourdirait d'autant les fonctionnalités portées par cet objet (pollution de l'API).
Il y a même une raison encore plus fondamentale, qui est que la fonction isNaN() peut s'appliquer à des types de valeurs qui ne sont pas des objets (les types primitifs undefined, null, boolean, number et string), alors qu'une méthode de classe ou d'instance ne peut s'appliquer, par définition, qu'à un type objet. Par exemple, tu ne peux pas exécuter l'instruction 3.toString() !
Soit dit en passant, Une Bévue, c'est du même genre que la remarque que je t'avais faite dans fr.comp.lang.php et que tu n'avais pas comprise, quand tu essayais de faire FALSE->errorCode().
Cordialement, -- Olivier Miakinen
Le 11/11/2011 14:33, Elegie répondait à Une Bévue :
oui mais pourquoi est-ce une fonction (isNaN(an-expected-number)
plutôt qu'une méthode (an-expected-number.isNaN())
Dans la mesure où isNaN peut être appliqué à n'importe quel objet, il
est plus judicieux d'en encapsuler la fonctionnalité à part, i.e. d'en
faire une méthode statique (qui applique un algorithme indépendant à un
argument donné) plutôt qu'une méthode d'instance (qui requiert un
contexte particulier pour fonctionner, i.e. l'instance elle-même).
Pour le formuler autrement, ajouter isNaN à tous les objets javascript -
par exemple en l'ajoutant sur le dernier objet de la chaîne des
prototypes, de façon à le rendre disponible pour tous les objets
javascript - est certainement possible, mais alourdirait d'autant les
fonctionnalités portées par cet objet (pollution de l'API).
Il y a même une raison encore plus fondamentale, qui est que la fonction
isNaN() peut s'appliquer à des types de valeurs qui ne sont pas des
objets (les types primitifs undefined, null, boolean, number et string),
alors qu'une méthode de classe ou d'instance ne peut s'appliquer, par
définition, qu'à un type objet. Par exemple, tu ne peux pas exécuter
l'instruction 3.toString() !
Soit dit en passant, Une Bévue, c'est du même genre que la remarque que
je t'avais faite dans fr.comp.lang.php et que tu n'avais pas comprise,
quand tu essayais de faire FALSE->errorCode().
Le 11/11/2011 14:33, Elegie répondait à Une Bévue :
oui mais pourquoi est-ce une fonction (isNaN(an-expected-number) plutôt qu'une méthode (an-expected-number.isNaN())
Dans la mesure où isNaN peut être appliqué à n'importe quel objet, il est plus judicieux d'en encapsuler la fonctionnalité à part, i.e. d'en faire une méthode statique (qui applique un algorithme indépendant à un argument donné) plutôt qu'une méthode d'instance (qui requiert un contexte particulier pour fonctionner, i.e. l'instance elle-même).
Pour le formuler autrement, ajouter isNaN à tous les objets javascript - par exemple en l'ajoutant sur le dernier objet de la chaîne des prototypes, de façon à le rendre disponible pour tous les objets javascript - est certainement possible, mais alourdirait d'autant les fonctionnalités portées par cet objet (pollution de l'API).
Il y a même une raison encore plus fondamentale, qui est que la fonction isNaN() peut s'appliquer à des types de valeurs qui ne sont pas des objets (les types primitifs undefined, null, boolean, number et string), alors qu'une méthode de classe ou d'instance ne peut s'appliquer, par définition, qu'à un type objet. Par exemple, tu ne peux pas exécuter l'instruction 3.toString() !
Soit dit en passant, Une Bévue, c'est du même genre que la remarque que je t'avais faite dans fr.comp.lang.php et que tu n'avais pas comprise, quand tu essayais de faire FALSE->errorCode().