2017-01-19 6 views
0
var temp = "<div class='cell' style='width:{width}px; height: {height}px; background-image: url(i/photo/{index}.jpg)'></div>"; 
    var w = 1, html = '', limitItem = 49; 
    for (var i = 0; i < limitItem; ++i) { 
     w = 200 + 200 * Math.random() << 0; 
     html += temp.replace(/\{height\}/g, 200).replace(/\{width\}/g, w).replace("{index}", i + 1); 
    } 
    $("#freewall").html(html); 

私はJavaScriptのビット単位の操作、特に左シフト演算子(< <)では実際にはよくありません。誰かが私になぜMath.random()times 200とplus 200の幅でそれを使用するのかを私に説明できますか?コードはfreewall.jsサンプルコードから抜粋したものです。これは何ですか:w = 200 + 200 * Math.random()<< 0;

答えて

0

Math.random()関数は、0以上1以下の浮動小数点擬似乱数を返します。必要な範囲にスケールすることができます。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random

ので、著者はそれがどこかに200と400ピクセル幅の間になりたいと思っています。 PXは整数である必要があるので、小数点以下を切り捨てるために0の左シフトを使用します。切り詰めの詳細については、https://stackoverflow.com/a/12125432/5314386を参照してください。

関連する問題