Профилирование `if (x)` VS `if (x === undefined)`

<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>

в Firefox if (g) медленнее, чем if (g = == undefined) . Мне интересно, знает ли кто-нибудь хорошее объяснение, почему это так?

в Chrome if (g) быстрее, чем if (g == = undefined) . Мне интересно, знает ли кто-нибудь хорошее объяснение, почему это так?

Я не утверждаю, что мы должны использовать одно вместо другого .. меня просто интересует theory

Возможно, разные браузеры имеют разные реализации, но любая теория в любом браузере заслуживает ответа

5
задан Name 17 June 2011 в 21:26
поделиться