Как разобрать код (underscore.js)?
a = x && '1' || '2'
соответствует a = x ? '1' : '2'
Разложите, начиная с конца.
Или вот вам аналогconst root = (() => {
  if (typeof self == 'object' && self.self === self) {
    return self
  } 
  if (typeof global == 'object' && global.global === global ) {
    return global
  } 
   return this;
 }
})();
короче, не надо так писать в проде :)
См. таблицу Приоритета операторов JS. От более высокого к менее: == и === (одинаково)&&||расставить скобкиvar root = 
  ( typeof self == 'object' && self.self === self && self )  ||
  ( typeof global == 'object' && global.global === global && global )  ||
  ( this );
и ещё больше скобокvar root = 
  ( (typeof self == 'object') && (self.self === self) && (self) )  ||
  ( (typeof global == 'object') && (global.global === global) && (global) )  ||
  ( this );
Пытаются понять контекст выполнения. self в Worker'ах; global определена в nodejs;this в прочих.