Когда полезен оператор запятой? - PullRequest
73 голосов
/ 06 марта 2012

Я прочитал этот вопрос о "операторе запятой" в выражениях (,) и MDN документах об этом, но я не могу вспомнить сценарий, в котором он Полезно.

Итак, когда полезен оператор запятой?

Ответы [ 12 ]

1 голос
/ 19 декабря 2014

Один типичный случай, который я в конечном итоге использую, это при разборе необязательного аргумента. Я думаю, что это делает его более читабельным и более кратким, чтобы синтаксический анализ аргументов не доминировал в теле функции.

/**
 * @param {string} [str]
 * @param {object} [obj]
 * @param {Date} [date]
 */
function f(str, obj, date) {
  // handle optional arguments
  if (typeof str !== "string") date = obj, obj = str, str = "default";
  if (obj instanceof Date) date = obj, obj = {};
  if (!(date instanceof Date)) date = new Date();

  // ...
}
0 голосов
/ 16 февраля 2014

Еще одна область, где можно использовать оператор запятой: Обфускация кода .

Допустим, разработчик пишет такой код:

var foo = 'bar';

Теперь она решаетзапутать код.Используемый инструмент может изменить код следующим образом:

var Z0b=(45,87)>(195,3)?'bar':(54,65)>(1,0)?'':'baz';// Z0b == 'bar'

Демо: http://jsfiddle.net/uvDuE/

...