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