Chrome console.log(elementID)在控制台中输出该元素

时间:2013-11-12 00:15:51

标签: javascript google-chrome-devtools

<input type="text" placeholder="Password" id="password" name="password" />
<script>
    console.log(password);
</script>

上面的代码在控制台中输出以下内容:

<input type="text" placeholder="Password" id="password" name="password">

当我输出变量password并注意到HTML已被预先添加时注意到这一点。这是正常的行为吗?在这种情况下我们有getElementById什么?

2 个答案:

答案 0 :(得分:3)

传统行为是将具有ID(和名称,我认为)的所有元素定义为window的属性。因此,window.password(或仅password)理论上可以用作getElementById的快捷方式。但是,只要您定义具有相同名称的变量,就会出现不可预测的行为。

这是全局变量不好的一个原因。始终使用var在本地定义变量。

答案 1 :(得分:3)

使用window[element id]window[element name]获取元素,standard behavior由所有现代浏览器since Firefox 14实施。我会推荐你​​关于这个主题的一些帖子。正如您在大多数帖子中都会发现的那样,建议不要使用该行为,并且通常较慢,因为浏览器优化.getElementById并检查变量是id还是名称是lowest priority in global scope