Загрузка...

Объект Math

Календарь мы уже оставили. Здесь спор о другом: куда шагать по прямой, когда дробь ровно половина или когда число левее нуля. В багетной мастерской на столе фото шириной 7.6 см, обрезок паспарту 7.2 см, сдвиг на 3.8 см влево от риски и три рейки — 12, 9 и 15 см. Размеры не трогаем. Меняется только целое, которое ты спрашиваешь у уже существующего объекта Math.

Конструктор тут ни при чём

В арифметике знак стоял между двумя значениями, и счёт на этом кончался. На странице про даты ты собирал момент через new Date и потом читал у него одну часть. Math не собирают. new Math() срывается, и вызов Math как функции тоже срывается. Ты называешь объект, называешь работу и отдаёшь число, которое уже есть.

Лист относится только к этому столу

Это не словарик методов. Каждая строка — решение мастерской: ярлык, рез, покупка, сдвиг влево, самая длинная рейка, самая короткая. Вызов отдаёт число и не переписывает замер в переменной. Восьмёрка окажется там, только если ты сам её сохранишь.

📊 Решения этого стола

Работа Решение Число здесь Где рука промахивается
Math.round ближайший целый сантиметр к 7.6 8 половина на отрицательном
Math.floor сколько реально отрезать от 7.2 7 тот же приём на отрицательном сдвиге
Math.ceil сколько купить, чтобы закрыть 7.2 8 сдвинуть число, которое уже целое
Math.trunc отбросить дробь -3.8 к нулю -3 ждать того же, что шаг вниз
Math.max самая длинная из 12, 9 и 15 15 отдать массив
Math.min самая короткая из этих реек 9 та же ошибка с массивом

Правее нуля остаток в половину поднимается: 0.5 становится 1. Левее нуля та же половина не уходит ещё ниже. Она шагает к плюс бесконечности, поэтому -1.5 садится на -1, а не на -2. В школе «пять вверх» почти всегда показывают на положительных. Шаг к меньшему целому — другая работа. Она понадобится на сдвиге.

Ярлык ширины

Квитанция не держит дробь, мастерской нужен ближайший целый сантиметр. Вызов не кладёт эту восьмёрку в переменную. Понадобится она дальше — сохрани сам.

Сантиметр на ярлыке

javascript
let width = 7.6;
console.log(Math.round(width));

На ярлыке 8. В width по-прежнему 7.6: восьмёрку туда никто не записал. Ширина 7.5 тоже ушла бы в 8. Ту же половину перенеси на -1.5. До -2 дело не доходит. Шаг идёт в сторону плюса, и целое там — это -1.

Резать или закрывать

javascript
let scrap = 7.2;
console.log(Math.floor(scrap));
console.log(Math.ceil(scrap));

Резак останавливается на 7. Две десятых — это не ещё один целый сантиметр картона. Если обрезок надо закрыть без щели, семёрки мало и покупаешь 8. Будь обрезок уже ровной семёркой, оба вызова остались бы на 7. Расхождение начинается только с дробью.

Сдвиг влево от риски

javascript
let nudge = -3.8;
console.log(Math.trunc(nudge));
console.log(Math.floor(nudge));

Минус остаётся в обоих ответах. Расстояния без знака отсюда не получается. Отбросить дробь — значит идти к нулю: от -3.8 приходишь к -3. Шаг вниз к нулю приближаться не может. Целое, которое не больше -3.8, — это -4. Перепутать их — сдвинуть раму на сантиметр.

Самая длинная и самая короткая

javascript
console.log(Math.max(12, 9, 15));
console.log(Math.min(12, 9, 15));

Три рейки — три отдельных аргумента. Длиннее всех 15, короче всех 9. Заверни те же три числа в массив и отдай один этот свёрток: метод внутрь не заглянет, получишь NaN. Сравнения не было.

Ящик от 1 до 6

javascript
let drawer = Math.floor(Math.random() * 6) + 1;
console.log(drawer >= 1 && drawer <= 6);
console.log(Math.random() < 1);

Сырой жребий никогда не касается 1. Он начинается с 0 и всегда остаётся ниже 1. Умножь на 6 — отрезок пойдёт от 0 до числа меньше 6. Шаг вниз оставляет только 0…5. Плюс один после этого ставит ящик в диапазон от 1 до 6, поэтому первая строка истинна при каждом запуске. Вторая строка — новый жребий, не номер ящика, и он тоже ниже 1. Прибавишь 1 до шага вниз или забудешь плюс один — ящик упадёт на 0 или на 7.

Круг на квитанции

Проём — круг радиуса 5. Площадь есть π, умноженное на радиус и ещё раз на радиус. Длинную дробь на квитанцию не кладут. Сначала её подводят к целому, и в абзац попадает уже это целое.

Квитанция с кругом

html
<!DOCTYPE html>
<html>
<head>
<title>math — page</title>
</head>
<body>
<p id="ticket">…</p>
<script>
let radius = 5;
let area = Math.PI * radius * radius;
let shown = Math.round(area);
let box = document.getElementById("ticket");
box.textContent = shown;
</script>
</body>
</html>

В абзаце человек видит 79. π на 25 сидит около 78.54, и подведение к целому поднимает это до 79. Пятёрка — радиус, 25 — радиус на себя. Ни то ни другое не текст абзаца.

Перед тем как закрыть коробку

Сначала левая сторона нуля: там рама съезжает без сообщения об ошибке. К нулю -3.8 встаёт на -3, вниз — на -4, а -1.5 не становится -2. Остальное смотри одним взглядом. Ярлык 8 при переменной 7.6, обрезок режется до 7 и закрывается 8, рейки 15 и 9, абзац 79, ящик от 1 до 6 только если единица прибавляется после шага вниз.

Код выполняется, а размер врёт

  • Собрать Math через new или вызвать Math как функцию
  • Прочитать -1.5 как -2, потому что из школы пришло «пять вниз»
  • На -3.8 поменять дорогу к нулю и шаг вниз местами
  • Сложить 12, 9 и 15 в массив и отдать этот один массив
  • Ждать, что жребий когда-нибудь равен ровно 1
  • Приподнять число, которое уже было целым, только из-за имени «закрыть»

Уноси направление, а не второй список имён. Левее нуля отбрасывание дроби и шаг вниз не встречаются. Дальше — HTML DOM.

🧠 Проверьте Свои Знания

Готов к Началу

Проверьте Свои Знания

Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему

❓
8
Вопросы
🎯
70%
Для Прохождения
♾️
∞
Время
🔄
∞
Попытки

📝 Инструкции

  • Внимательно прочитайте каждый вопрос
  • Выберите лучший ответ на каждый вопрос
  • Вы можете пересдавать тест столько раз, сколько захотите
  • Ваш прогресс будет показан вверху