2013-06-27 5 views
0
a = (a == b) ? c: b; 

Я не понимаю. Все из них {a, b, c} - это переменные, заданные определенным программистом.Что делает этот кусок кода? a = (a == b)? c: b;

+0

Если ** a ** равно ** b **, то присваивает ** c ** ** ** другому ** b **. –

+0

Существует один и тот же оператор на других языках, но одна вещь, чтобы иметь в виду javascript, условная часть тернарного оператора ('(a == b)' в этом примере) является «правдой», а не просто булевыми , Итак, '99? «a»: «b» 'вернет« a »и« 0? «a»: «b» 'вернет« b ». Это может позволить вам сделать некоторые интересные вещи с этим оператором в javascript (как вы можете с помощью оператора '||'). –

+0

, если a равно, то a равно c, иначе a равно b. – Pbk1303

ответ

0

Это ternary operator, что эквивалентно:

if (a == b) { 
    a = c; 
} else { 
    a = b; 
} 

Основное отличие состоит в том, что if/else состоит из условных операторов, в то время как тройной оператор является условным выражением. Другими словами, тернарный оператор работает так, как будто if/else возвращал значение. В некоторых других языках, if/else являются выражениями, а также, так что следующее будет действительным, и действительно эквивалентно ?::

a = (if (a == b) { c; } else { b; }) // not valid javascript 

Обязательно проверьте https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

сети разработчиков Mozilla является фантастическим ссылка на JavaScript ,

1

Если a равна b то a = c в противном случае a = b.

0

если a равно b затем присвоить c к a, в противном случае назначить b для a

0

Синтаксис?: a ternary operator. По существу, это означает, что, если a равно b, чем a равна c противном случае a равна b

1

Это короткая форма для если и уступки.

q = x? y: z

q - переменная, которую вы назначаете . x - это логическое выражение, которое будет истинным или ложным. Если верно, то y будет присвоено вашей переменной q else z будет присвоено q.