#javascript #function #ecmascript-6
#javascript #функция #ecmascript-6
Вопрос:
Я новичок, поэтому этот вопрос может показаться глупым. Мне пришлось сделать 4 функции Javascript, я выложу их ниже
function Square(a) {
b=a*a;
return b;
}
//2.Functia Half//
function Half(a) {
b=a/2;
return b;
}
//3.Functia Percent//
function Percent(a,b) {
procent=a/b*100;
return procent "%";
}
//4.Functia Area//
function Area(a) {
pi=3.14;
circlearea=a*a*pi;
final=circlearea.toFixed(0);
return final;
}
Теперь я должен создать последнюю функцию, которая выполняет:
Применяет функцию Half к параметру, который я передал новой функции (a), сохраняет в новой переменной (result), результат становится параметром для функции square, результат снова будет сохранен в новой переменной (resultSquare), resultSquare будет использоваться в функции Area и сохранен в новой переменной (resultArea). В конце концов, мне нужна функция процента, чтобы узнать процент результирующей области из resultSquare. Я пробовал так, но безуспешно:
function new function{
result=Half(a);
return resu<
resultSquare=Square(result);
return resultSquare;
}
Она просто возвращает результирующую переменную и больше ничего не делает. Можете ли вы помочь? Заранее благодарю вас.
Комментарии:
1. Вам нужна только одна
result
для каждого пути выполнения в функции, поскольку возвращаемый результат завершает работу функции, поэтому вашей первойreturn
там быть не должно. Иfunction new function{
недопустимый синтаксис. Объявления функций должны выглядеть точно так же, как вы делали ранее.2. Вам действительно следует привыкнуть к объявлению переменных в ваших функциях с помощью
var
orlet
. В настоящее время большинство ваших переменных являются глобальными .3. Также используйте
Math.PI
вместо объявления вашей собственной константы.
Ответ №1:
Вы не можете return
что-то повторить дважды. Как только вы возвращаете что-то, это выходит за рамки функции. Удалите первый return resu<
оператор, и он должен работать.
Также почему вы делаете
function new function { }
Правильный синтаксис
function [Function Name](parameters) { }
Комментарии:
1. Вы имеете в виду, когда я создаю новые функции или когда я их вызываю? Потому что я еще ни одну не вызывал и для их создания, поскольку, как это работает с этим синтаксисом.
2. @AlexandruSalitrarovici создаю. Если у вас это работает, вы можете продолжать это делать. Я просто не думал, что это сработает
Ответ №2:
result
Завершает работу функции — поэтому ничего после return
инструкции выполняться не будет. Вам нужно вернуть последний элемент:
function newFunction(a) {
var result = Half(a);
var resultSquare = Square(a);
var resultArea = Area(a);
return Percent(resultSquare, resultArea);
}
Комментарии:
1. Большое вам спасибо, это сработало! Как функция процента может возвращать только 2 цифры после,? Например, xx.yy%
2. Никаких проблем @AlexandruSalitrarovici, если мой ответ устранил вашу проблему, пожалуйста, отметьте его как принятый, щелкнув серую галочку слева от моего ответа.
3. Может быть, вы можете помочь мне с тем, какой процент возвращает, пожалуйста? Я знаю о «.toFixed(2);», но я не знаю, как его использовать, когда я вернусь в этом случае.
4. Просто сделайте
return Percent(resultSquare, resultArea).split("").pop().join("").toFixed(2).split("").push("%").join("")