Ответ 1
Я объявляю их как undefined, когда я не назначаю значение, потому что они undefined в конце концов.
При объявлении переменных в верхней части функции JavaScript лучше всего установить их равными нулю или оставить как "undefined"? Другой способ спросить, какие обстоятельства требуют для каждого варианта ниже?
Вариант A:
var a = null,
b = null;
Вариант B:
var a,
b;
Я объявляю их как undefined, когда я не назначаю значение, потому что они undefined в конце концов.
Это зависит от контекста.
"undefined" означает, что это значение не существует. typeof
возвращает "undefined"
"null" означает, что это значение существует с пустым значением. Когда вы используете typeof
для проверки "null", вы увидите, что это объект. В другом случае, когда вы сериализуете "нулевое" значение для серверного сервера, такого как asp.net mvc, сервер получит "нуль", но когда вы сериализуете "undefined" , сервер вряд ли получит значение.
Как правило, я использую null для значений, которые, как я знаю, могут иметь состояние "null"; например
if(jane.isManager == false){
jane.employees = null
}
В противном случае, если его переменная или функция, которая еще не определена (и, таким образом, в данный момент не используется), но предполагается, что она будет установлена позже, я обычно оставляю ее undefined.
Я лично чувствую следующее:
Undefined: данных здесь нет, и обычно их не должно быть. Undefined обычно вызывает ошибки и не должен нормально возникать. Это в значительной степени ваша задача проверить проблему с данными.
Null: данные не установлены... еще. Я использую null, когда планирую добавить данные позже.
Tl; dr: Undefined НЕ нормально (что-то неправильно, когда вы его видите), нуль отлично.
Единственный раз, когда вам нужно установить его (или нет), - это если вам нужно явно проверить, что переменная a
установлена ровно на null
или undefined
.
if(a === null) {
}
... не совпадает с:
if(a === undefined) {
}
Тем не менее, a == null && a == undefined
вернет true
.
Как правило, я определил null, указывая на то, что человек установил значение и undefined, чтобы указать, что никаких настроек не было.
Я обычно устанавливаю его для того, что, как я ожидаю, будет возвращено из функции.
Если строка, чем я, установит ее в пустую строку = '', то же самое для object = {} и array = [], integers = 0.
используя этот метод, мне необходимо проверить значение null/ undefined. моя функция будет знать, как обрабатывать строку/массив/объект независимо от результата.
Короткий ответ заключается в том, что это не влияет на то, как он проходит через стек. Однако есть ситуации, когда было бы лучше иметь дело с переменными за пределами области видимости.
Вы можете использовать '';
для объявления переменной NULL в Javascript