JSLintでは ++ を使うとエラーになる。++i の代わりに i += 1 と書くようにということのようだ。でも、+= 1 は ++ の正確な代替ではなかった。 加法演算子は被演算子の少なくとも一方が文字列なら、文字列連結処理になる。一方、前置増分演算子 (++) は初めに被演算子に ToNumber 内部関数を適用してから 被演算子 = 被演算子 + 1 を行う。つまり、結果は必ず数値(NaNを含む)となる。 ということで、++i の代わりになるのは、正確には i = +i + 1 だった(単項 + 演算子は ToNumber 内部関数を適用する)。

