Sempre que alguém menciona testar contra undefined, é indicado que undefinednão é uma palavra-chave para que pudesse ser definida como"hello" , portanto, você deve usar typeof x == "undefined" . Isso me parece ridículo. Ninguém jamais faria isso, e se fizesse, seria motivo suficiente para nunca usar qualquer código que eles escreveram ... certo?
Eu encontrei um exemplo de alguém que acidentalmente definiu undefinedcomo null, e isso foi dado como um motivo para evitar supor que undefinednão seja sobrescrito. Mas se eles tivessem feito isso, o bug não teria sido detectado, e não consigo ver como é melhor.
Em C ++, todos sabem que é legal dizer isso #define true false, mas ninguém nunca aconselha que você evite truee use 0 == 0. Você simplesmente assume que ninguém jamais seria um idiota grande o suficiente para fazer isso e, se o fizer, nunca confie em seu código novamente.
Isso alguma vez realmente mordeu alguém onde outra pessoa foi atribuída undefined(propositalmente) e quebrou seu código, ou é mais uma ameaça hipotética? Estou disposto a arriscar para tornar meu código um pouco mais legível. É realmente uma má ideia?
Para reiterar, estou não pedir como se proteger contra redeterminação indefinido. Já vi esses truques escritos 100 vezes. Estou perguntando o quão perigoso é não usar esses truques.