如果我有一个<div id='a'>Chrome浏览器,那么在javascript中我可以做(就好像是一个全局变量).a.stuff()a
然而,这不适用于FireFox - 我将需要使用document.getElementById('a').
这里的正确行为是什么?(根据W3规格)
另外我感兴趣的是,如果我有一个id为div a但a在我的脚本中也有一个全局变量,Chrome将如何解决这种歧义.这种行为是随机的还是笨拙的?
如何将一个id由连字符(" - "),冒号(":")和句点(".")组成的元素进行翻译(好吧我知道它们可以被访问document.getElementById但浏览器将如何将其转换为表示它们的全局变量)
我们使用什么最干净的解决方案来克服当我们点击BACKSPACE/DEL/do CUT时IE9不会触发输入事件的问题?
最干净的我的意思是代码不会发臭.
<script>
function f(){
var t=document.getElementById("t");
var g=t.asdfg;
var a=new Date().getTime();
for(var x=0;x<100000000;++x){
if(g===undefined);
//if(g);
}
var b=new Date().getTime();
alert(b-a);
}
</script>
<body onload="f();">
<input id="t"/>
</body>
Run Code Online (Sandbox Code Playgroud)
在Firefox if(g)中慢于if(g===undefined).我想知道有没有人知道为什么会这样呢?
Chrome if(g)中的速度比if(g===undefined).我想知道有没有人知道为什么会这样呢?
我不是在争论我们应该使用一个而不是另一个......我只是对这个理论感兴趣
可以说不同的浏览器有不同的实现,但任何浏览器上的任何理论都值得回答