2010-09-20 3 views

Répondre

1

Elle, avec :, comprend ternary operator et est un raccourci pour renvoyer l'une des deux valeurs (les deuxième et troisième sous-expressions), en fonction du résultat de la condition (la première sous-expression).

Wikipédia donne une bonne description: http://en.wikipedia.org/wiki/%3F:#Javascript

Il est utilisé comme ceci:

var result = (condition ? value_for_true : value_for_false);

Exemple:

var result = (1 > 0 ? "It is greater" : "It is less"); 

L'exemple ci-dessus "It is greater" magasins dans la variable result. En soi, ? ne fait rien sauf provoquer une erreur de syntaxe lorsqu'il est utilisé sans :.

+0

merci, regardé google mais il a fallu le "?" vouloir dire question. –

+0

Bien sûr. C'est une caractéristique commune à plusieurs langues: http://en.wikipedia.org/wiki/%3F. Pas seulement JavaScript. –

3

cela signifie une ligne si

condition? true_statement: false_statement

par exemple

if(condition){ 
alert("true"); 
}else{ 
alert("false"); 
} 

est le même que condition ? alert("true"): alert("false");

+1

Pour référence, les parties vrai et faux de l'opérateur conditionnel doivent être des valeurs et non des actions. Je recommande 'alert (condition?" True ":" false ")' à la place - bien que dans ce cas particulier, alert (condition.toString()) 'puisse fonctionner aussi bien. De toute façon, si vous devez choisir entre deux actions, utilisez 'if' /' else'; Si vous décidez entre deux valeurs, utilisez '?:' – cHao

+1

Je montrais juste que ça peut fonctionner comme si, bien que vous ayez raison, il peut être utilisé comme retour (condition? "ok": "non") – bevacqua

1

Il fait partie de la ternary operator.

// This simple if 
if (25 > 23) { 
    alert("yes"); 
} else { 
    alert("no"); 
} 

// Is the same as 
alert(25 > 23 ? "yes" : "no"); 
1

Vous voulez probablement dire l'opérateur ?:, ou ternaire. Comme cela a été couvert plusieurs fois avant, je vous renvoie à this thread pour une explication complète.

+1

C'est en fait l '[opérateur conditionnel JS] (https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special_Operators/Conditional_Operator), qui est le seul opérateur ternaire de JS. –

+0

Tu sais, les gens vont devenir plutôt confus si jamais il finit par être un autre opérateur ternaire. Ils ne sauront plus comment appeler l'existant. – cHao