Фрагмент 1:
if ( x ) { 
    foo();
}
Фрагмент 2:
x ? foo() : 0;  
Каковы различия между этими двумя фрагментами?
Изменить: Исправлена ошибка синтаксиса.
Обновить: btw, кажется, что есть еще более короткое обозначение:
x && foo();
Фрагмент 1:
if ( x ) { 
    foo();
}
Фрагмент 2:
x ? foo() : 0;  
Каковы различия между этими двумя фрагментами?
Изменить: Исправлена ошибка синтаксиса.
Обновить: btw, кажется, что есть еще более короткое обозначение:
x && foo();
Как правило, if представляет собой инструкцию (например, вы не можете назначить ее переменной), а тернарный оператор ?: является частью выражения (дает значение, которое может быть присвоено переменным).
Кроме того, блок if может содержать инструкции, а компоненты ?: могут содержать только выражения.
В примере, который вы даете, нет никакой разницы, так как вы не используете результат ?:.
Оба фрагмента оценивают foo() только в том случае, если x является истинным значением.
Snippet # 2 является недействительным выражением ECMAScript, так как ему не хватает требуемого : blah, чтобы сделать его тройным.
  РЕДАКТИРОВАТЬ: На самом деле нет разницы между двумя фрагментами, они оба вызывают foo, если x прав. Если x является ложным (undefined/false/empty string/0/), то первый фрагмент не будет оценивать что-либо, последний фрагмент будет оцениваться до 0, но этот 0 действительно не влияет на script.
Я думаю, вы хотели спросить следующее
// Why should I use
if (x) {
  do();
}
// instead of 
x && do();
или
// Why should I use
if (x) {
  do(); 
} else {
  dont();
}
//instead of 
x ? do() : dont()
Как они написаны, нет никакой разницы в выходе. Мне не нравится использовать тернарный или && оператора в этих случаях из-за семантики использования тройной и &. Терминал возвращает значение, которое вы не используете, также как && выражение. Поэтому я предпочел бы использовать способ использования операторами.
Однако мне нравится использовать && для нулевых проверок
var val = obj && obj.getValue();
Обратите внимание, что в этом случае мы используем возвращаемое значение выражения