I think the warnings are a good thing, as they help raise the awareness that undefined is a special value in JS and should be treated as such. The programmer should know if a variable can ever be in the undefined state without it being a bug, and in that case they should test for it explicitly. I would argue it's bad practice if a variable can either evaluate to false in some other way (e.g. false, 0, "", null, NaN) or be undefined, it should be one or the other by choice, so the type+value test is more appropriate: "if (foo !== undefined)". That's also part of our coding conventions. I think a lot of subtle bugs can be caught by warnings like that (and a good understanding of the peculiarities of JS).