Вызов "Калькулятор" не работает


#43

Что Вы делаете здесь, на курсах для новичков?:slight_smile:


#44

ну эцсамое, я как бы сам новичок


#45

после того, как нашел оператор switch, оптимальным видится такое решение:

var calculate = function ( firstNumber, secondNumber, operator) {
switch (operator) {
case ‘+’ : return (parseInt(firstNumber, 10)+parseInt(secondNumber, 10));
case ‘-’ : return (parseInt(firstNumber, 10)-parseInt(secondNumber, 10));
case ‘*’ : return (parseInt(firstNumber, 10)*parseInt(secondNumber, 10));
case ‘/’ : return (parseInt(firstNumber, 10)/parseInt(secondNumber, 10));
}
}


#46

А зачем скобки после return?


#47

У вас наверное самое простое.Но всё же для меня не очень понятно.
switch (operator) {
case ‘+’ ______; break; Заменяет if, как я поняла.
Следующие
case ‘+’ ______; break; заменяют else if и т.д. если я правильно поняла?
Но почему то если я ставлю if, то чего у меня нитого выходит, ошибки какие то. var calculate = function(firstNumber, secondNumber, operator) {
var num1 = +firstNumber;
var num2 = +secondNumber;

if(’+’){
num1 += num2;
};
else if(’-’){
num1 -= num2;
};
else if(’*’){
num1 *= num2;
};
else(’/’){
num1 /= num2;
};
return num1;
};


#48

4 точки с запятой лишние
просто else не нужен, только else if
не задействован operator - где он у вас в теле функции?
если придираться - зачем вводите новые переменные? модифицируйте имеющиеся 3

Поправил ваше, открывать в случае отчаяния
var calculate = function(firstNumber, secondNumber, operator) {
  if (operator == '+') {
    firstNumber = +firstNumber + +secondNumber;
  } else if (operator == '-') {
    firstNumber -= secondNumber;
  } else if (operator == '*') {
    firstNumber *= secondNumber;
  } else if (operator == '/') {
    firstNumber /= secondNumber;
  }
  return firstNumber;
};

самые короткие опасные решения:

раз
function calculate(x, y, o) {
  return (new Function('return ' + x + o + y))();
}
два
 const calculate = (x, y, o) => eval( x + o + y );

#49

Спасибо, короткие конечно прикольные, но неясные, мы же таких символов и так составлять с такими командами ещё не учились, нам это ещё не знакомо. Было бы неплохо если бы в курсах разъясняли значения этих команд, но там такого нет. Ясно будет тем кто до этого касался и изучал ранее, как я поняла, здесь таких много. Но возьму на заметку, возможно в других справочниках и пособиях найду их понятия, что и что обозначает.


#50

тут на курсах вряд ли будут про это рассказывать вообще. eval вообще как огня боятся (на это есть причины). тут многое не рассказывают что вообще-то стоило бы (но тогда на интенсив никто не пойдет).
я не уверен, что на курсах когда-то про прототипирование вообще расскажут, которое в основе всего и дает целостную картинку понимания что вообще происходит тут, откуда методы берутся, как определяется this и пр. про промисы вообще молчу.


#51

Что-то не совсем вас поняла, почему бояться и не пойдут на курсы если его ввести?
При просмотре других решений, видела что ими многие пользуются (имею в виду не именно eval, а вообще в целом другими неизученными командами).
И разве на курсах не должны пояснять именно основу? И есть ли где можно было почитать более подробно и чтобы для новичков ясно излагалась про это? Про html нашла сайты, в которых можно более менее понять и хорошие шпаргалки, а вот с явоскриптом, есть конечно сайты, но для новичков трудновато воспринимается, хотелось бы более подробно и по шагам.


#52

Ну js сложноватый язык. Лучше изучить для начала типизированный язык, даже Бейсик подойдет

Ну или книжку Моргана “js для самых маленьких”