If you’re living in 2002 and not using the strict equality operator, that’s on you
But what if I don’t want strict comparison? What if my frontend contains a text field for a numeric input and I wanna manually check against each possible valid input value if (input_val == 1) else if (input_val == 2) else if...
without having to convert it first or check that it’s actually a number or fix my frontend?
(I’m sure there are valid use cases for non-strict comparison, I just can’t think of one right now)
why wouldn’t you just convert inline?
(Number(input_val) === 2)
Converting would mean you could use a switch statement with your example rather than an if else ladder
switch(Number(input_val)) {
case 1:
doTheFirstThing();
break;
case 2:
doTheSecondThing();
break;
case 3:
doTheThirdThing();
break;
}
If you’re looking for good code, you missed the point of my comment 😄
If I was looking for an enumeration of valid inputs, I’d make it a selection box rather than a text field that’s supposed to contain a number and give the selections reasonable names. If I want an integral quantity, I’d use a number input field.
If I have no control over the frontend, that means I’m writing a backend in JS for a bullshit frontend, and no amount of good coding practice is going to salvage this mess.
I’m also blessedly far away from WebDev now. I work in Data Analytics and if I ever have to do any of this for a living, something has gone very wrong.
Converting texts into numbers or dates still haunts me though - fuck text inputs for numbers and dates.