Разделенный запятыми номер / функция в скобках в JavaScript?

Я прочитал строку из doT.js:

var global = (function(){ return this || (0||eval)('this'); }());

После того, как это было уменьшено:

l=function(){return this||(0,eval)("this")}();

Так что же (0,eval)Я имею в виду, что делает запятая?

Я играл в консоли Chrome, (0,1), (2,1), (2,{}), 2,1и т. д., он всегда возвращает последний.

1 ответ

Решение

Оператор запятой оценивает оба и всегда возвращает последнее. Как и ты сказал.

Вы можете прочитать о запятой оператора: http://javascriptweblog.wordpress.com/2011/04/04/the-javascript-comma-operator/

Несмотря на то, что я понятия не имею, цель (0||eval)... (0,eval) эквивалентна и на один символ меньше.

Другие вопросы по тегам