Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

n = Math.sqrt(-6);

8 réponses
Avatar
ast
bonjour,

On peut vraiment faire à peu près n'importe quoi avec javascript.

Par exemple après:

n = Math.sqrt(-6);

n contient NaN (Not a Number)

et le programme continu sans rien signaler ...

8 réponses

Avatar
Pascal
Le 21/01/2011 13:22, ast a écrit :
bonjour,



Bonjour,

On peut vraiment faire à peu près n'importe quoi avec javascript.


[...]
et le programme continu sans rien signaler ...



L'exécution se poursuit et l'erreur est signalée dans le contenu
retourné, qui peut donc être testé.
Où est le problème ?


--
Cordialement,
Pascal
Avatar
Cenekemoi
Bonjour à ast qui nous a écrit :
bonjour,

On peut vraiment faire à peu près n'importe quoi avec javascript.

Par exemple après:

n = Math.sqrt(-6);

n contient NaN (Not a Number)

et le programme continu sans rien signaler ...



Si la bête est bien écrite, il doit y avoir un test du genre :

if ( isNaN(n) ) alert ('erreur sur n');

Je ne vois pas où est le problème !!!

--
Cordialement, Thierry ;-)
Avatar
ast
"Cenekemoi" a écrit dans le message de
news:4d39866d$0$868$
Bonjour à ast qui nous a écrit :
bonjour,

On peut vraiment faire à peu près n'importe quoi avec javascript.

Par exemple après:

n = Math.sqrt(-6);

n contient NaN (Not a Number)

et le programme continu sans rien signaler ...



Si la bête est bien écrite, il doit y avoir un test du genre :

if ( isNaN(n) ) alert ('erreur sur n');

Je ne vois pas où est le problème !!!




sqrt(-6) devrait entrainer l'arret du programme, avec un joli message
d'erreur, comme cela se passe avec les autres langages.
Avatar
Olivier Miakinen
Le 21/01/2011 14:59, ast a écrit :

On peut vraiment faire à peu près n'importe quoi avec javascript.







Oui, c'est une excellente chose. Il n'y a rien de pire que les langages
qui nous interdisent de faire ce qu'on veut.¹

Par exemple après:
n = Math.sqrt(-6);
n contient NaN (Not a Number)
et le programme continue sans rien signaler ...







Il continue sans rien signaler si le programmeur ne demande pas que ce
soit signalé. Il s'arrêtera avec un message d'erreur si le programmeur
en a décidé ainsi.

Si la bête est bien écrite, il doit y avoir un test du genre :
if ( isNaN(n) ) alert ('erreur sur n');
Je ne vois pas où est le problème !!!





Tout juste.

sqrt(-6) devrait entrainer l'arret du programme, avec un joli message
d'erreur, comme cela se passe avec les autres langages.



Je ne vois pas pourquoi tu voudrais brider le langage, en ne lui
laissant pas d'autre choix que celui que tu décris ici, alors qu'il est
si simple de permettre l'un ou l'autre.

--
Olivier Miakinen
¹ Note : c'était une boutade, bien sûr. Par exemple on ne peut pas
demander à JavaScript d'aller lire un fichier sur la machine du
visiteur d'un site web, sans son consentement.
Avatar
Paul Gaborit
À (at) Fri, 21 Jan 2011 14:59:42 +0100,
"ast" écrivait (wrote):

sqrt(-6) devrait entrainer l'arret du programme, avec un joli message
d'erreur, comme cela se passe avec les autres langages.



Vous ne devez pas connaître beaucoup d'autres langages... ;-)


--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Avatar
Olivier Masson
Le 21/01/2011 14:59, ast a écrit :


sqrt(-6) devrait entrainer l'arret du programme, avec un joli message
d'erreur, comme cela se passe avec les autres langages.



Javascript ne doit pas gérer les nombres complexes :)
Avatar
Mickaël Wolff
On 22/01/11 12:21, Olivier Masson wrote:

Javascript ne doit pas gérer les nombres complexes :)



C'est marrant, ce fut mon premier réflexe. La racine d'un nombre
négatif n'est pas illégale, dans l'ensemble des nombres complexes.
Ceci dit, que devrait-on dire de la division par 0 :o)
Avatar
Jo Engo
On Fri, 21 Jan 2011 14:59:42 +0100
"ast" wrote:

sqrt(-6) devrait entrainer l'arret du programme, avec un joli message
d'erreur,



Il faut rajouter sauf si le programmeur a écrit un traitement d'except ion ad hoc. Le fait qu'aucune exception ne soit levée à ce moment là est un effet de bord de l'existence de la valeur réservé e NaN.

comme cela se passe avec les autres langages.



*Ben non. Si le langage a prévu le cas, il ne se déroute pas.

--
La nature veut qu'on jouisse de la vie le plus possible et qu'on meure
sans y penser. Le christianisme a retourné cela.
-+- Charles Sainte Beuve -+-