В курсе Академии JS, Dragon Slayer 2/6, следующий текст используется в подсказке, чтобы описать порядок операций для кода, включенного в заголовок.Порядок действий для Math.floor (Math.random() * 5 + 1)?
Как работает этот код?
Math.floor(Math.random() * 5 + 1);
Сначала мы используем Math.random(), чтобы создать случайное число от 0 до 1. Например, 0,5
Затем мы умножаем на 5, чтобы сделать случайное число от 0 до 5. Например, 0,5 * 5 = 2,5
Далее мы используем Math.floor() для округления до целого числа. Например,> Math.floor (2,5) = 2
Наконец мы добавим 1, чтобы изменить диапазон от от 0 до 4, чтобы между 1 и 5> (вплоть до и включая 5)
Я искал это в нескольких разных местах (here и here), и большинство из них либо сосредоточено на диапазоне, который производит Math.random() (что я понимаю), либо подтверждают порядок операций, описанных в подсказке , где «Math.floor» действует на «Math.random() * 5» до добавления «+1».
Мне кажется, однако, что согласно порядку операций, которые я изучил в школе, последние два шага должны быть перевернуты. Разве это не так, поскольку «Math.random() * 5» и «+ 1» находятся в скобках?
Хотя разница между этими двумя может не повлиять на значение, полученное от этого конкретного кода, я мог видеть, что фундаментальное изменение в порядке работы, как описано здесь, может вызвать у меня некоторое разочарование в будущем, если Я этого не знал.
Объяснение, данное для этого выражения, неверно. – zerkms
Все в круглых скобках, в которых завершается аргумент 'Math.floor', должен возвращать число с плавающей точкой. Таким образом, порядок должен быть: 'Math.random()', который возвращает float между 0 и 0.9999 ... Затем умножьте это на 5, затем добавьте 1. Затем, наконец, 'Math.floor' его –