Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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
这个javascript语句会影响性能吗?_Javascript_Performance_Variable Assignment - Fatal编程技术网

这个javascript语句会影响性能吗?

这个javascript语句会影响性能吗?,javascript,performance,variable-assignment,Javascript,Performance,Variable Assignment,我正在编写一个函数add_事件,如下所示: function add_event(o, event_type, callback, capture){ o = typeof o === "string" ? document.getElementById(o) : o; if(document.addEventListener){ add_event = function(o, event_type, callback, capture){

我正在编写一个函数add_事件,如下所示:

function add_event(o, event_type, callback, capture){
    o = typeof o === "string" ? document.getElementById(o) : o;
    if(document.addEventListener){
        add_event = function(o, event_type, callback, capture){
            o = typeof o === "string" ? document.getElementById(o) : o;
            o.addEventListener(event_type, callback, capture);
        }
    }else if(document.attachEvent){
        add_event = function(o, event_type, callback, capture){
            o = typeof o === "string" ? document.getElementById(o) : o;
            o.attachEvent("on" + event_type, callback);
        }
    }
    add_event(o, event_type, callback, capture);
}
现在我的问题是这个声明

o = typeof o === "string" ? document.getElementById(o) : o;

影响此程序的性能?如果传递的是HTML元素而不是id,则实际上执行语句o=o,这就是我问这个问题的原因。非常感谢。

js解释器可能会对其进行优化。即使没有,效果也不会明显。如果您真的担心,请将其更改为:

if(typeof o === "string")
  o = document.getElementById(o);

js解释器很可能会对其进行优化。即使没有,效果也不会明显。如果您真的担心,请将其更改为:

if(typeof o === "string")
  o = document.getElementById(o);

不会。大多数javascript解释器的性能不会因此受到影响。那些这样做的人最多会受到几微秒的影响

在这种情况下,您应该专注于使代码可读性和可维护性。试图从非常简单的操作中挤出性能只会浪费时间,并可能使代码更难维护

如果您觉得javascript代码的性能很差,那么可以使用各种工具和策略来查找和修复问题。以下堆栈溢出问题与此主题有关:


祝你好运

否。大多数javascript解释器的性能不会因此受到影响。那些这样做的人最多会受到几微秒的影响

在这种情况下,您应该专注于使代码可读性和可维护性。试图从非常简单的操作中挤出性能只会浪费时间,并可能使代码更难维护

如果您觉得javascript代码的性能很差,那么可以使用各种工具和策略来查找和修复问题。以下堆栈溢出问题与此主题有关:


祝你好运

字符串绝对不是
string
(不是
string
!)的实例
typeof
是正确的选择。字符串绝对不是
string
的实例(而不是
string
!)
typeof
是正确的选择。