[Bounty Edit]
Я ищу хорошее объяснение, когда вы должны установить/использовать null
или undefined
и где вам нужно его проверить. В основном, какие общие практики для этих двух и действительно ли можно рассматривать их отдельно в родовом поддерживаемом кодеде?
Когда я могу безопасно проверить === null
, безопасно проверить для === undefined
и когда мне нужно проверить оба с помощью == null
Когда вы должны использовать ключевое слово undefined
и когда нужно использовать ключевое слово null
У меня есть различные проверки в формате
if (someObj == null)
или if (someObj != null)
, которые проверяют как null, так и undefined. Я хотел бы изменить все это на === undefined
или === null
, но я не уверен, как гарантировать, что он будет только когда-либо одним из двух, но не обоих.
Где вы должны использовать проверки для null
и где следует использовать проверки для undefined
Конкретный пример:
var List = []; // ordered list contains data at odd indexes.
var getObject = function(id) {
for (var i = 0; i < List.length; i++) {
if (List[i] == null) continue;
if (id === List[i].getId()) {
return List[i];
}
}
return null;
}
var deleteObject = function(id) {
var index = getIndex(id) // pretty obvouis function
// List[index] = null; // should I set it to null?
delete List[index]; // should I set it to undefined?
}
Это только один пример того, где я могу использовать как null
, так и undefined
, и я не знаю, что правильно.
Есть ли случаи, когда вы должны проверить как null
, так и undefined
, потому что у вас нет выбора?