var token = 'spo';
switch(token){
case ( (token.match(/spo/) )? token : undefined ) :
console.log('MATCHED')
break;;
default:
console.log('NO MATCH')
break;;
}
-> Если совпадение выполнено, троичное выражение возвращает исходный токен
----> Исходный токен оценивается регистром
-> Если совпадение не установлено, троичный символ возвращается неопределенным
----> Case сравнивает токен с неопределенным, который, надеюсь, не является вашим токеном.
Тройной тест может быть чем угодно, например, в вашем случае
( !!~ base_url_string.indexOf('xxx.dev.yyy.com') )? xxx.dev.yyy.com : undefined
===========================================
(token.match(/spo/) )? token : undefined )
- это троичное выражение .
Тестом в этом случае является token.match (/ spo /), который устанавливает соответствие строки, содержащейся в токене, с выражением регулярного выражения / spo / (в данном случае это буквальная строка spo).
Если выражение и строка совпадают, это приводит к истине и возвращает токен (то есть строку, над которой работает оператор switch).
Очевидно, токен === токен, так что оператор switch сопоставляется, а регистр вычисляется
Проще понять, если вы посмотрите на него послойно и поймете, что тест Turnery оценивается "ДО" оператора switch, так что оператор switch видит только результаты теста.