http://javascriptissexy.com/javascript-apply-call-and-bind-methods-are-essential-for-javascript-professionals/でbind() メソッドについて学ぶ理由、私はこのような興味深い計算に出くわしました:
var randomNum = ((Math.random () * 2 | 0) + 1) - 1;
何を理解しようとしています | 署名はありますが、JavaScript Bitwise 演算子 ( https://www.w3schools.com/js/js_bitwise.asp ) に出会いました。
(Math.random () * 2 | 0)
そして、それがビット単位の OR 演算であることを知りました。
Math.random() * 2
ビット単位の値で 0 または 1 の値を与える場合があることを把握しました (たとえば、0.06218657045669751 は 1 と解釈されます)。Math.random() * 2
計算結果が 0 として扱われる場合と 1 として扱われる場合をチェックする関数を作成しました。
function showNumber() {
console.log(Math.random() * 2);
return Math.random() * 2 | 0;
}
showNumber();
結果は私の質問に対する答えを与えてくれませんでした。1.5337258727722651 を与える場合Math.random() * 2
、1 と 0 として解釈することもできるためです。
この解釈はルールによってランダムですか、それとも背後に何らかのロジックがありますか?