次のコードの何が問題になっていますか?
$(function() {
var ok = true;
for (var i = 0; i < 1000; i++) {
var x = 100; // if we use new Number(100) here, the test will pass
$.each([1,2], function(k) {
x -= 5.5; // if we use integer (or declare a variable with value 5.5 outside this scope), the test will pass
return false;
});
if (x + 5.5 != 100) {
fail();
}
}
});
このテストはすべてのブラウザーで成功しますが、Safari 6 (6.0.2 (8536.26.17)) では失敗します。コードに誤りはありませんか?それともブラウザのバグ?jsFiddleの例を次に示します。以下を出力します。
OK: 94.5 + 5.5 = 100
FAIL: 95 + 5.5 = 100