You may find the question (and my answer) in How to check if a variable or object is undefined? relevant. In general, I view any access to an "undeclared variable" a programming error.
However, this particular case can *only** be detected with the use of detecting for a ReferenceError
exception. But, yuck, yuck, yuck! Remember variable declarations are a static lexical construct, ignoring the quirks with property-variables of the global object.
ReferenceError
, and now "strict", exist for a reason and I suspect this is an X-Y problem. I do not even recommend the use of typeof
for this purpose: fix the code :-)
Happy coding.
*It has been pointed out that "variable" in window
will also [and only] work for global "variables" (they are really just properties that don't need be qualified in all contexts).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…