Sempre que alguém menciona testar contra undefined
, é indicado que undefined
nã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 undefined
como null
, e isso foi dado como um motivo para evitar supor que undefined
nã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 true
e 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.