在JavaScript中,为什么这个classic 的二次附加不是O(n²)?
s = "";
for (i = 0; i < 1000000; i++) {
s = `( ${s} )`
};
console.log(s.length)
在Firefox 124和Chromium 123中都是O(n).
在Python中,正如预期的那样是O(n²):
s = ""
for i in range(50_000): # increase by 2x, gets 4x slower
s = f"( {s} )"
print(len(s))
这是什么魔法,浏览器是如何作弊的? ECMAScript规范是否保证了这种行为?