[Javascript] Les points-virgules

Les points-virgules [Javascript] - HTML/CSS - Programmation

Marsh Posté le 16-05-2005 à 13:47:54    

Je viens d'apprendre que les ; ne sont pas nécessaires en Javascript [Javascript, The definitive Guide 4th edition]. Pourquoi alors m'embêterais-je a en coller derrière toutes mes expressions ? Pourquoi tout le monde laissent des ; unutiles un peu partout ? Pourquoi serait-ce une mauvaise habitude ?
 
Merci

Reply

Marsh Posté le 16-05-2005 à 13:47:54   

Reply

Marsh Posté le 16-05-2005 à 14:05:59    

Je ne pense pas que "Les ; ne sont pas nécessaires en javascript" soit la phrase exacte (je n'ai jamais lu le bouquin, mais bon), tout simplement parce qu'elle est fausse.
 
Un retour à la ligne peut remplacer un ";", c'est possible, mais dangereux tant en lecture qu'en optimisation, c'est peu clair, et c'est de toute façon peu intéressant en gain (on gagne 1 octet par ligne maximum, super)


Message édité par masklinn le 16-05-2005 à 14:08:07

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-05-2005 à 14:12:53    

t'appelle ça un gain ?

Reply

Marsh Posté le 16-05-2005 à 14:22:14    

jagstang a écrit :

t'appelle ça un gain ?


Si tu n'optimises pas tes fichiers CSS, tu gagnes un peu moint d'un octet/ligne [:spamafote]  
 
Ca reste un gain, aussi minable qu'il soit (pour une perte de lisibilité équivalente à l'optimisation/compression et un gain largement inférieur [:aloy] )


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-05-2005 à 14:23:32    

Citation :

2.4 Optional Semicolons
 
Simple statements in JavaScript are generally followed by semicolons (;), just as they are in C, C++, and Java. The semicolon serves to separate statements from each other. In JavaScript, however, you may omit the semicolon if each of your statements is placed on a separate line. For example, the following code could be written without semicolons:  

a = 3;
 
b = 4;


But when formatted as follows, the first semicolon is required:  

a = 3; b = 4;


Omitting semicolons is not a good programming practice; you should get in the habit of using them.


 
Il ne s'agit pas gain ou d'optimisation mais plutôt de consistance.
Je ne comprends pas non plus l'argument de la lisibilité : en ruby, personne n'irait mettre des ; là où ils sont inutiles.
Quel intérêt j'ai à singer la syntaxe de Java en JavaScript ... Ca me dépasse.


Message édité par cnstrnd le 16-05-2005 à 14:24:56
Reply

Marsh Posté le 16-05-2005 à 14:31:03    

Citation :

Omitting semicolons is not a good programming practice; you should get in the habit of using them.


 
 
En somme, ce qui est optionnel c'est de ne pas écrire de point-virgule.  
Disons que c'est accepté, mais non conseillé.
 
En ce cas, on ne peut pas dire que mettre des points-virgules en javascript soit inutile.

Reply

Marsh Posté le 16-05-2005 à 14:37:30    

cnstrnd a écrit :


Il ne s'agit pas gain ou d'optimisation mais plutôt de consistance.
Je ne comprends pas non plus l'argument de la lisibilité : en ruby, personne n'irait mettre des ; là où ils sont inutiles.
Quel intérêt j'ai à singer la syntaxe de Java en JavaScript ... Ca me dépasse.


La consistance en Javascript c'est qu'on doit mettre des ";"
Ce n'est pas "singer la syntaxe du java", la syntaxe JS est tirée de celle du C, et en C... on met des semicolons [:itm]  
Le ruby n'a rien à voir avec le JS, je ne vois pas ce qu'il vient foutre là (sinon je peux aussi dire qu'en Python il ne viendrait à personne l'idée de mettre un semicolon à la fin d'une ligne [:itm] )
Ne pas mettre de semicolons en JS est dangereux, surtout quand on utilise des optimisers.
 
 
Ici, le fait de n'être pas obligé de mettre le semicolon dans certains cas est issu de la (trop) grande permitivité du Javascript, c'est tout, et c'est le comportement illogique. Pas l'inverse.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-05-2005 à 14:49:29    

Mais pourquoi alors

function Foo()
{
  return
  true;
}

est équivalent à

function Foo()
{
  return[b];[/b] // <- !!!
  true;
}

si les semicolons sont si importants.
 
Je voudrais pas jouer l'avocat du diable mais de ce que je lis, les points-virgules ne servent QU'A séparer des expressions sur la même ligne.
 
Bizarre.

Reply

Marsh Posté le 16-05-2005 à 14:52:40    

cnstrnd a écrit :

Mais pourquoi alors

function Foo()
{
  return
  true;
}

est équivalent à

function Foo()
{
  return[b];[/b] // <- !!!
  true;
}

si les semicolons sont si importants.
 
Je voudrais pas jouer l'avocat du diable mais de ce que je lis, les points-virgules ne servent QU'A séparer des expressions sur la même ligne.
 
Bizarre.


 :pfff:  

Citation :

le fait de n'être pas obligé de mettre le semicolon dans certains cas est issu de la (trop) grande permitivité du Javascript, c'est tout, et c'est le comportement illogique. Pas l'inverse.


 
Maintenant si t'es pas content, tu vas lire la norme du Javascript, ils y parlent de "automatic semicolon insertion", si tu n'es pas capable d'en tirer les concéquences qui s'imposent je ne peux rien pour toi


Message édité par masklinn le 16-05-2005 à 14:54:29

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-05-2005 à 15:12:25    

Merci pour la bonne habitude de m'envoyer me faire compulser la norme. :D

Reply

Marsh Posté le 16-05-2005 à 15:12:25   

Reply

Marsh Posté le 16-05-2005 à 16:35:59    

masklinn a écrit :


 
 
Ici, le fait de n'être pas obligé de mettre le semicolon dans certains cas est issu de la (trop) grande permitivité du Javascript, c'est tout, et c'est le comportement illogique. Pas l'inverse.


 
+1
 
 :o  


---------------
Expert en expertises
Reply

Marsh Posté le 17-05-2005 à 11:28:05    

Il y a pas quelqu'un qui aurait un petit scritp perl a lui montrer (un de ceux bien "obfusques" ) ?
Ca illustrerai les derives auquelles on peut arriver avec un langage trop permissif :P

Reply

Marsh Posté le 17-05-2005 à 11:31:39    

cerel a écrit :

Il y a pas quelqu'un qui aurait un petit scritp perl a lui montrer (un de ceux bien "obfusques" ) ?
Ca illustrerai les derives auquelles on peut arriver avec un langage trop permissif :P


Bof, autant coller directement du brainfuck :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed