Je vous recommande vivement de lire l'article détaillé du Dr Axel Rauschmayer sur son blog.
Expressions et déclarations en JavaScript
comme mentionné dans la réponse acceptée de @ZER0 ci-dessus.
Mais mon raccourci mémoire préféré est :
Expression :
e
peut être réglé E
qual à un Expression
ou Expressed
en l'imprimant.
Déclaration :
..tout autre chose.
Le texte suivant a été modifié à partir de
Réponse d'Anders Kaseorg sur Quora .
Une déclaration est une ligne complète de code qui exécute une action.
E
très E
L'expression peut être utilisée comme une déclaration
(dont l'effet est d'évaluer l'expression, et ignorer la valeur résultante) .
Mais un E
Une expression est une section du code qui e
valu à un valu e
.
Les expressions peuvent être combinées "horizontalement" en de plus grandes expressions à l'aide d'opérateurs.
E
a un sommet horizontalement plat
La plupart des déclarations ne peuvent pas être utilisées comme des expressions.
Les déclarations ne peuvent être combinées "verticalement" qu'en écrivant l'une après l'autre, ou avec des constructions en bloc.
S
fonctionne verticalement en comparaison.
D'après le post Quora de Ryan Lam :
Voici une règle générale : si vous pouvez l'imprimer ou l'affecter à une variable, il s'agit d'une expression. Si vous ne le pouvez pas, c'est une déclaration.
Voici quelques exemples d'expressions :
2 + 2
3 * 7
1 + 2 + 3 * (8 ** 9) - sqrt(4.0)
min(2, 22)
max(3, 94)
round(81.5)
"foo"
"bar"
"foo" + "bar"
None
True
False
2
3
4.0
Tous les éléments ci-dessus peuvent être imprimés ou affectés à une variable.
Voici quelques exemples de déclarations :
if CONDITION:
elif CONDITION:
else:
for VARIABLE in SEQUENCE:
while CONDITION:
try:
except EXCEPTION as e:
class MYCLASS:
def MYFUNCTION():
return SOMETHING
raise SOMETHING
with SOMETHING:
Aucune des constructions ci-dessus ne peut être affectée à une variable. Ce sont des éléments syntaxiques qui servent un objectif, mais qui n'ont pas de "valeur" intrinsèque. En d'autres termes, ces constructions n'ont pas de "valeur". Essayer de faire l'une des choses suivantes, par exemple, serait absurde et ne fonctionnerait tout simplement pas :
x = if CONDITION:
y = while CONDITION:
z = return 42
foo = for i in range(10):