Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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 与函数中的原语进行比较是否会导致GC事件?_Javascript_Garbage Collection_Micro Optimization - Fatal编程技术网

Javascript 与函数中的原语进行比较是否会导致GC事件?

Javascript 与函数中的原语进行比较是否会导致GC事件?,javascript,garbage-collection,micro-optimization,Javascript,Garbage Collection,Micro Optimization,当我们将某些东西与函数中的原语进行比较时,这些原语是被创建然后被垃圾回收的,还是浏览器对此进行了一些优化?对我来说,这似乎是一个基本情况,我想知道微观优化是否有意义,例如,将比较过的原语分配给函数外部声明的变量,以避免重复创建所述原语 我经常发现自己在写: function isGood(foo) { return foo === 'good'; } 从函数中拉出“good”以避免GC事件(如果有)有意义吗 var good = 'good'; function isGood(foo)

当我们将某些东西与函数中的原语进行比较时,这些原语是被创建然后被垃圾回收的,还是浏览器对此进行了一些优化?对我来说,这似乎是一个基本情况,我想知道微观优化是否有意义,例如,将比较过的原语分配给函数外部声明的变量,以避免重复创建所述原语

我经常发现自己在写:

function isGood(foo) {
    return foo === 'good';
}
从函数中拉出
“good”
以避免GC事件(如果有)有意义吗

var good = 'good';
function isGood(foo) {
    return foo === good;
}

ECMA-262没有定义实现如何做任何事情,它只描述可观察的结果,即它们的行为。因此,唯一能够回答这个问题的人是那些能够访问并理解源代码的人。提取字符串文本只创建一次,这是有史以来每个远程高级语言实现(从C到Python)中的标准优化。我认为这段代码是我最不担心GC负载的部分,并继续我的生活。