前回の結論のように, JavaScriptにおいては計算の重たい部分を展開したもの勝ちです. 一昔前のCコンパイラに対するようなものですね. 無論, やり過ぎたら読みにくいしメンテしづらいですが変わることのないライブラリなら許容範囲は広いでしょう. ここではsha1.jsで使われている展開以外のテクニック(?)をあげてみます. ・32bitラップアラウンド 高度な JavaScript 技集では次のコードが使われていました. function MD5_number(n) { while (n < 0) n += 4294967296; while (n > 4294967295) n -= 4294967296; return n; } 他のwebページでも似たコードを見かけました. もしかしたら昔の処理系に対応したものが広まっているのかもしれませんが, 0とorして正しく32bit整数に