Функции для вычисления длины и площади окружности JS
Товарищи, доброго времени суток!
Есть задача:
Пользователь вводит число R. Написать программу, которая выведет в консоль длину окружности и площадь круга с радиусом R.
Изначально для решения задачи я написала две функции следующего содержания:
const r = +prompt('Enter a number');
function circleLength(r) {
let length = 2 * Math.PI * r;
console.log(Math.round(length));
};
function circleSquare(r) {
let square = Math.PI * Math.pow(r, 2);
console.log(Math.round(square));
};
circleLength();
circleSquare();
Вывод в консоли (во всплывающем окне prompt введена цифра 4):
NaN
NaN
Знатно поругавшись, стала искать другие варианты решения задачи. Нашла следующее решение, оно выводит корректные значения:
const r = +prompt('Enter a number');
const circleLength = 2 * Math.PI * r;
console.log(Math.round(circleLength));
const circleSquare = Math.PI * Math.pow(r, 2);
console.log(Math.round(circleSquare));
Вывод в консоли (во всплывающем окне prompt введена цифра 4):
25
50
Я не понимаю, почему первый код не работает так, как второй. Ведь методы использованы одинаковые. Прошу помочь с выяснением причин. Заранее спасибо!
Ответы (1 шт):
В первом коде вы не передаёте ничего на вход в функции. При этом там стоит переменная, которая должна быть каким-то значением. Если оно не передано, то оно по-умолчанию undefined. Дальше в математических операциях с undefined получается NAN.
Вот если бы там не было ожидание параметра (то есть было function circleLength() и function circleSquare()), то значение взялось из r верхнего скоупа.