为什么JS在分配为变量时识别DOM节点?

问题描述:

该代码非常简单,基本上我分配给DOM元素的id并显示输出以及元素的'typeof'。为什么JS在分配为变量时识别DOM节点?

<li id="noob">N00B</li> 
<li id="coder">C0D3R</li> 

var someVar = noob; 
console.log(someVar); // output <li id="noob"> 
console.log(typeof someVar); // output object 

从我已经用我看到指出,从元件的ID直接访问由Javascript和可以被指定为可变的,至少无TUTS(主要计算器,W3Schools的,codeacademy和MDN)某种类型的方法(即getElementById,getElementsByTagName,getAttribute)。

当检查typeof运算是有意义的对象由于所有节点都生活文档中的对象(难道我的理解对不对?)

然而,第一部分是我想什么了解。

这是fiddle,我的浏览器是FireFox 47.0以防万一。

我分配给DOM元素

都能跟得上的ID,您分配元素本身。分配的ID会是这样:

var someVar = "noob"; 

揭露DOM元素(那些ID)作为window对象属性(使它们的全球标识符)是浏览器的“功能”。有关详细信息,请参见this answer