//ДЗ: Функции и области видимости //Анализ //Проанализируйте свои предыдущие ДЗ на предмет повторяющихся действий и придумайте названия, //параметры и возвращаемое значение для функций в этих случаях //Напишите функцию a, которая просто является коротким именем для alert. Смотрите пример //с d(), которая является коротким именем для debugger из материала лекции function greetings(greetings) { alert(greetings); } // greetings("Привет!") // вызывает alert("Привет!") //cube function cube(number) { return Math.pow(number, 3); } // console.log(cube(2)) //avg2 //Напишите функцию avg2, которая рассчитывает среднюю для двух чисел: //формула для подсчета среднего: (a + b) / 2 //напишите функцию тут //avg2(1,2) // возвращает 1.5 //avg2(10,5) // возвращает 7.5 var avgOfTwo = function (a, b) { return (a + b) / 2; }; // console.log(avgOfTwo(1,2)) // console.log(avgOfTwo(10,5)) //sum3 //Напишите функцию sum3 для суммирования 3 чисел: //Обратите внимание, что sum3 от двух параметров тоже работает корректно. //sum3(1,2,3) // => 6 //sum3(5,10,100500) // => 100515 //sum3(5,10) // => 15 var sumThree = function (a, b, c) { if (a === void 0) { a = 0; } if (b === void 0) { b = 0; } if (c === void 0) { c = 0; } return (a + b + c); }; // console.log(sumThree(1,2,3)) // console.log(sumThree(5,10,100500)) // console.log(sumThree(5, 10)) //intRandom //Напишите функцию intRandom, которая принимает два параметра: нижнюю и верхнюю границу, и возвращает целое //случайное число из этого диапазона включительно: //Обратите внимание, что если передан один параметр (intRandom(10) в примере выше), то функция работает //как будто первый параметр равен 0, а переданный параметр становится вторым параметром(intRandom(0, 10)) //Используйте умножение для расширения значения встроенной функции Math.random c диапозона 1, сложениe для //смещения результата на первый параметр, и Math.round для округления результата //intRandom(2,15) // возвращает целое случайное число от 2 до 15 (включительно) //intRandom(-1,-1) // вернет -1 //intRandom(0,1) // вернет 0 или 1 //intRandom(10) // вернет 0 до 10 включительно var intRandom = function (min, max) { if (min === void 0) { min = 0; } return Math.round(Math.random() * ((max ? max : min) - (max ? min : 0)) + (max ? min : 0)); }; // console.log(intRandom(2,15)) // console.log(intRandom(-1,-1)) // console.log(intRandom(0,1)) // console.log(intRandom(10)) //greetAll //Сделайтей функцию, которая приветствует всех, кто передан в качестве параметров. //Вам поможет arguments и for //greetAll("Superman") // выводит alert "Hello Superman" //greetAll("Superman", "SpiderMan") // выводит alert "Hello Superman, SpiderMan" //greetAll("Superman", "SpiderMan", "Captain Obvious") // выводит alert "Hello Superman, SpiderMan, Captain Obvious" var greetAllDeclaration = function () { for (var _i = 0, arguments_1 = arguments; _i < arguments_1.length; _i++) { var arg = arguments_1[_i]; console.log("Hello darling " + arg + " from function declaration"); } }; // greetAllDeclaration("Superman") // greetAllDeclaration("Superman", "SpiderMan") // greetAllDeclaration("Superman", "SpiderMan", "Captain Obvious") var greetAllArrow = function () { var argumentsArr = []; for (var _i = 0; _i < arguments.length; _i++) { argumentsArr[_i] = arguments[_i]; } for (var _a = 0, argumentsArr_1 = argumentsArr; _a < argumentsArr_1.length; _a++) { var arg = argumentsArr_1[_a]; console.log("Hello darling " + arg + " from arro function"); } }; // greetAllArrow("Superman") // greetAllArrow("Superman", "SpiderMan") // greetAllArrow("Superman", "SpiderMan", "Captain Obvious") //sum //Напишите функцию sum, которая сумирует любое количество параметров: Используйте псевдомассив //arguments для получения всех параметров, и for для итерирования по нему //sum(1) // => 1 //sum(2) // => 2 //sum(10,20,40,100) // => 170 var sumDeclaration = function () { var sum = 0; for (var _i = 0, arguments_2 = arguments; _i < arguments_2.length; _i++) { var arg = arguments_2[_i]; sum += arg; } return sum; }; // sumDeclaration(1) // sumDeclaration(2) // sumDeclaration(10,20,40,100) var sumArrow = function () { var argumentsArr = []; for (var _i = 0; _i < arguments.length; _i++) { argumentsArr[_i] = arguments[_i]; } var sum = 0; for (var _a = 0, argumentsArr_2 = argumentsArr; _a < argumentsArr_2.length; _a++) { var arg = argumentsArr_2[_a]; sum += arg; } return sum; }; // sumArrow(1) // sumArrow(2) // sumArrow(10,20,40,100) //Union //Всё предыдущие функции и примеры с ними объедините в функции, которые вызывайте в switch по имени задания: var eternalSample = function () { var sample = prompt("Введите название задания"); !sample && eternalSample(); switch (sample.toLowerCase()) { case "a": greetings('Gorge'); break; case "cube": console.log(cube(2)); break; case "avg2": console.log(avgOfTwo(1, 2)); break; case "sum3": console.log(sumThree(1, 2, 3)); break; case "intrandom": console.log(intRandom(2, 15)); break; case "greetall": greetAllArrow("Superman", "SpiderMan"); break; case "sum": console.log(sumArrow(10, 20, 40, 100)); break; default: console.log('Whoopps'); } eternalSample(); }; // eternalSample() //Union declarative //made it but withou invoking , belive me id works var associativeArr = new Map(); associativeArr.set("a", greetings); associativeArr.set("cube", cube); associativeArr.set("avg2", avgOfTwo); associativeArr.set("sum3", sumThree); associativeArr.set("intrandom", intRandom); associativeArr.set("greetall", greetAllArrow); associativeArr.set("sum", sumArrow); var eternalSampleAssociativeArr = function () { var sample = prompt("Введите название задания"); !sample && eternalSampleAssociativeArr(); var getValue = associativeArr.get(sample.toLocaleLowerCase()); getValue ? console.log(getValue) : console.log('Whoopps>Try again and writy more exat!'); eternalSampleAssociativeArr(); }; // eternalSampleAssociativeArr()