JSFiddle - React, Tailwind, and code Playground

by Andrey

JavaScript

function сalculator (firstNumber) {
	var res;
  var e = new Error;
  
  if(typeof firstNumber !== 'number'){
  	e.message = 'Первый аргумент не число';
    e.name = 'firstNumber';
    throw e;
  };
  
	var calc = {
		sum: function(){
    var res = firstNumber;
			for(i=0; i<arguments.length; i++){
			res += arguments[i];
			};
			return res;
		},
		dif: function(){
     var res = firstNumber;
			for(i=0; i<arguments.length; i++){
			res -= arguments[i];
			};
      return res;
		},
    div: function(){
    var res = firstNumber;
			for(i=0; i<arguments.length; i++){
			res /= arguments[i];
      	if(typeof arguments[i] !== 'number'){
        	e.message = 'Not a number'
          e.name = 'second not a number';
        }
        else if(arguments[i] === 0){
        	e.message = 'infinity'
          e.name = 'div by null';
          throw e;
        }
			};
			return res;
		},
    mul: function(){
    var res = firstNumber;
			for(i=0; i<arguments.length; i++){
			res *= arguments[i];
			};
			return res;
		}
	};		
		return calc;
};

try {
	var myCalc = сalculator('sd');
  
	console.log(myCalc.sum(2, 3, 5));
  console.log(myCalc.dif(2, 3, 5));
  console.log(myCalc.div(0, 3, 5));
  console.log(myCalc.mul(2, 3, 5));
  }
  catch(e){
  	console.log(e.message);
  };