Ogni volta che qualcuno menziona il testing contro undefined, viene sottolineato che undefinednon è una parola chiave, quindi potrebbe essere impostata su"hello" , quindi dovresti usare typeof x == "undefined" invece. Questo mi sembra ridicolo. Nessuno lo farebbe mai, e se lo facessero sarebbe una ragione sufficiente per non usare mai alcun codice che hanno scritto ... giusto?
Ho trovato un esempio di qualcuno che ha impostato accidentalmente undefinedsu null, e questo è stato fornito come motivo per evitare di presumere che undefinednon venga sovrascritto. Ma se lo avessero fatto, il bug sarebbe passato inosservato e non vedo come sia meglio.
In C ++ tutti sanno bene che è legale dirlo #define true false, ma nessuno consiglia mai di evitarlo truee di usarlo 0 == 0. Presumi solo che nessuno sarebbe mai un idiota abbastanza grande da farlo, e se lo fanno, non fidarti mai più del loro codice.
Questo ha mai effettivamente morso qualcuno a cui qualcun altro era assegnato undefined(apposta) e ha rotto il tuo codice, o è più una minaccia ipotetica? Sono disposto a correre le mie possibilità per rendere il mio codice leggermente più leggibile. È davvero una cattiva idea?
Per ribadire, io non chiedendo come proteggere contro riassegnato indefinito. Ho già visto quei trucchi scritti 100 volte. Chiedo quanto sia pericoloso non usare quei trucchi.