Каждый раз, когда кто-то упоминает тестирование против undefined
, , он указывает , что undefined
не является ключевым словом, поэтому это может быть установите значение "hello"
, поэтому вы должны использовать вместо этого typeof x == "undefined"
. Мне это кажется смешным. Никто бы никогда не сделал этого, и если бы они это сделали, это было бы достаточной причиной, чтобы никогда не использовать какой-либо код, который они написали ... верно?
Я нашел один пример человека, который случайно установил undefined
на null
, и это было дано как причина, чтобы не предполагать, что undefined
не перезаписывается. Но если бы они это сделали, ошибка осталась бы незамеченной, и я не вижу, как это лучше.
В C ++ всем хорошо известно, что можно сказать #define true false
, но никто никогда не советует избегать true
и использовать 0 == 0
вместо. Вы просто предполагаете, что никто никогда не будет достаточно большим придурком, чтобы сделать это, и если они это сделают, никогда больше не будут доверять своему коду.
Укусило ли это когда-нибудь кого-то, кого кто-то назначил на undefined
(намеренно), и это нарушило ваш код, или это скорее гипотетическая угроза? Я готов рискнуть и сделать свой код более читабельным. Это действительно плохая идея?
Повторяю, я не спрашиваю, как защититься от переназначенного undefined. Я уже сто раз видел эти трюки. Я спрашиваю, насколько опасно не использовать эти уловки.