DK пишет:
Нулевое, пустое значение объекта
Не понятно в разрезе Яваскрипта...
В C# и VB, языках со строгой типизацией, у переменных, объявленных как "объект", может быть значение "отсутствие объекта" (null и Nothing соответственно).
В Руби всё является объектом, соответственно, у любого имени можно спросить: nil? Но по правде говоря, я не знаю, когда это применяется, не настолько много работала с Руби.
Но с Яваскриптом я работала много... Там отсутствие объекта (например, ты искал в неё элемент веб-страницы, а он не нашёлся, вернулось false или null) определяется просто по условию самого объекта:
var canvas = document.GetElementById("canvas");
if (!canvas) throw new Error("canvas не найден!")
В Яваскрипте любой объект считается за истинное условие (следует заметить, что не любое значение считается объектом, в отличие от Руби!), а
undefined, null, 0 и ряд других значений - ложными. Соответственно, если ожидаешь объект, то существование объекта проверяют просто условием - это надёжно.
Вообще в Яваскрипте редко различают undefined и null, почти что только в опциональных аргументах. Но если аргумент в любом случае не может принять ложных значений, допустимых в функции, то пишут просто: arg = arg || значение_по_умолчанию.