Hi, So here’s some data for you:
In string_old.js: var s; for (var i = 0; i < 1e8; i++) { if (s == "") { } } In string.js: var s = ""; for (var i = 0; i < 1e8; i++) { if (s === "") { } } time node string.js real 0m0.246s user 0m0.114s sys 0m0.046s time node string_old.js real 0m2.496s user 0m2.452s sys 0m0.019s The === and setting to “" is an order of magnitude faster (in node anyway), similar results with initialising to null rather than “”. Running similar code (converted to AS ) through the chrome profiler gives results where setting to null and using === is faster. It even twice as fast if you initialise the variable and compare on every time through the loop. So 1e8 lots = null and a === is faster than no initialisation and a ==. I think what is happening currently is that because we are not initialising the variable it’s doing a implicit cast on every every comparison that is very expensive when using != and ==, using === and !== significantly speeds this up but then you have the issues of uninitialise strings and objects being null in AS and undefined in JS but it still twice as fast. BTW I do note that we are setting ints to 0. I assume because of similar reasons? But it seems you were not concerned with the overhead of this? Thanks, Justin