2013-08-15 6 views
0

J'ai récemment lu un code javascript en ligne et je veux le convertir en C#. Quand j'ai rencontré cette ligne de code, je n'avais aucune idée de ce qu'elle faisait: X = (! X? 8: X). S'il vous plaît, expliquez.Que signifie "X = (! X? 8: X)" en javascript?

+0

un coup d'oeil à la [opérateur ternaire] (http://msdn.microsoft.com/en-us/library/ie/be21c7hw (v = vs.94) .aspx) –

+4

Je préfère 'if (! X) x = 8;' Le ternaire ne sauvegarde rien dans ce cas particulier. – techfoobar

Répondre

6

Il vérifie si oui ou non X est faux (contient 0, chaîne vide, null, indéfini). Si c'est le cas, la ligne affecte 8 à X, sinon X conserve sa valeur d'origine.

1

Il définit la var X à 8 si !X est vrai (donc si X est faux). Sinon, X garde la même valeur. Donc, si X est une chaîne vide, le false booléen ou le nombre 0 (je pourrais oublier certaines valeurs mais bien comprendre), il sera mis à 8, sinon il gardera ses valeurs d'origine. Il est le même que:

if(!X) { X = 8 }