Is a reversed switch statement acceptable JavaScript?
Personally I wouldn't like seeing reversed switch
in a code base. It doesn't buy you anything when compared to a plain if/elseif
block, and its exotic nature can be cause for confusion.
That's also what JSLint is complaining about:
You are doing something unorthodox. Is there a good reason for it? If not, it might be better to stick to the basics.
The third edition of the ECMA-262 standard (supported by Firefox 1.0+, Google Chrome 1.0+, MSIE 5.5+ and others) defines that
switch (expression) {
case label1:
statements1
.
.
.
}
executes statements1
if (expression)
matches label1
.
That means that your switch
statement is perfectly fine.
I tried it out on Firefox, Chrome and IE. None complains...
Edit:
Now the guessing part:
JSLint is a code anaylisis tool. When it sees switch (true)
, it assumes that you don't know what you're doing. Weird doesn't mean necessarily wrong...