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负载的部分,并继续我的生活。