Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么传递与div Id同名的javascript变量会传递div_Javascript_Html_Css - Fatal编程技术网

为什么传递与div Id同名的javascript变量会传递div

为什么传递与div Id同名的javascript变量会传递div,javascript,html,css,Javascript,Html,Css,我认为这绝对是可笑的 给定的 HTML <div id = "statCounter"></div> 执行 console.log(statCounter); // logs <div id = "statCounter"></div> console.log(statCounter); //日志 这怎么可能?这有多荒谬?!!? 这是IE中实现的一个特性(大概是为了避免在框架出现之前的很久以前,用getElementById()来填充代码,我

我认为这绝对是可笑的

给定的

HTML

<div id = "statCounter"></div>
执行

console.log(statCounter);
// logs <div id = "statCounter"></div>
console.log(statCounter);
//日志
这怎么可能?这有多荒谬?!!?

这是IE中实现的一个特性(大概是为了避免在框架出现之前的很久以前,用getElementById()来填充代码,我说的是1999年)

最初,其他浏览器,如Netscape,没有这种功能。但在某个时候,一些非IE浏览器开始实现此功能,以便与使用IE特定功能的公司网站兼容


我不完全确定,但我相信到目前为止,这已经在一些标准(ECMAScript或HTML5或其他标准)中指定。所以现在所有浏览器都实现了这个“功能”

?也许在这个简单的脚本中你是对的,但在我更复杂的应用程序中,我将(示例)statCounter设置为某个对象,比如statCounter={prop1:1,prop2:2};我通过了statCounter,但它却通过了Div!我使用console.log(statCounter.prop2)并获得2!我控制台.log(statCounter)并获取div!好吧,这样我就不会疯了。。在我卑微的2年开发生涯中,我从来没有见过这种情况,也不敢相信它会在一开始就实现成这样。在他的书《JavaScript忍者的秘密》中,John Resig将浏览器的这种行为称为“贪婪ID”。查一查。当你无法避免的时候,你有一个解决方法注意,这个答案比我这里的答案对这个错误的历史有更好的解释:
console.log(statCounter);
// logs <div id = "statCounter"></div>