这个做了什么:w = 200 + 200 * Math.random()<< 0;

时间:2017-01-19 02:58:31

标签: bitwise-operators freewalljs

    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按位操作方面并不是很好,尤其是左移位运算符(&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;任何人都可以向我解释为什么开发人员使用Math.random()乘以200和加200的宽度?该代码摘自freewall.js示例代码。

1 个答案:

答案 0 :(得分:0)

  

Math.random()函数返回范围[0,1)中的浮点伪随机数,从0(包括)到最大但不包括1(不包括),然后您可以缩放到您想要的范围。

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

因此,作者希望它介于200到400px之间。 PX需要是整数,因此作者然后使用左移0来截断小数的右边。有关截断的详细信息,请参阅https://stackoverflow.com/a/12125432/5314386