为什么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。