но тогда это больше похоже на баг, чем на фичу...
Как обычно. Новички вместо попытки отладить свое поделие начинают обвинять компилятор/интерпретатор/etc.
/sarcasm on
Конечно, это же куча опытных разработчиков, которые много лет пилят V8, допустили такой "баг".
И никто в мире кроме
accountnujen его не нашел!
/sarcasm off
А если серьезно - научитесь мыслить критически и подумайте, вероятность чего больше:
1. Вероятность того, что разработчики V8 допустили такой "баг".
2. Вероятность того, что
accountnujen (который даже забыл break написать после console.log ) банально не знает о таком понятии как
приоритет операторов.
switch(true) {
case 'language' in localStorage:
console.log('язык есть');
break;
case 'theme' in localStorage:
console.log('тема есть');
break;
case !('theme' in localStorage):
console.log('темы нет. загрузка дефолтной темы');
// no break
}
P. S.
Хотя я даже не уверен, что вы понимаете что делаете и зачем вам switch (вы понимаете как он работает?).