Недавно я наткнулся на следующий синтаксис ошибки:Почему моя неправильная инструкция if работает?
if (button=="init" || "show_selected" || "show_all") {
Конечно, это должно было быть:
if (button=="init" || button=="show_selected" || button=="show_all") {
ОДНАКО, первоначальное заявление, казалось, отлично работает в Chrome, FF и IE9 !? !? Я только оценил свою ошибку, добавив новый вариант.
Чтобы уточнить, «init», «show_selected» и «show_all» являются строковыми аргументами, используемыми при вызове функции; например
onclick=myFunction("init");
Я уверен, что я помню, пытаясь этим видом стенографии на ранней стадии, когда обучение JS и выяснить, очень быстро, что не работы.
В любом случае, я уже исправил код, но меня раздражает, что я не понимаю, почему он работает.
Может ли кто-нибудь пролить свет на эту загадку?
Ну, это не сработало «отлично», потому что логика неверна, но это, конечно, не ошибка синтаксиса. – JJJ
|| "show_selected" всегда будет true –
'" show_all "' принудительно до логического значения 'true' – hindmost