Как различать объект DOM и объект Object в JS?
var isDomElement = document.getElementById('someId') instanceof HTMLElement;

самое важное: создать объект класса HTMLElement и его наследников просто так нельзя, т.е. нельзя написать 
var el = new HTMLElement();
> document.body+''
"[object HTMLBodyElement]"
> document.querySelector('div')+''
"[object HTMLDivElement]"
> document.querySelector('span')+''
"[object HTMLSpanElement]"
Или то же самое - .toString() (это в Firefox) - начинает становиться некоторым стандартом. Раньше JQuery 1.x определяла DOM-элемент наличием свойства .attributes, когда разброс по выдачам у браузеров был велик.