123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- //ДЗ: Функции и области видимости
- //Анализ
- //Проанализируйте свои предыдущие ДЗ на предмет повторяющихся действий и придумайте названия,
- //параметры и возвращаемое значение для функций в этих случаях
- //Напишите функцию a, которая просто является коротким именем для alert. Смотрите пример
- //с d(), которая является коротким именем для debugger из материала лекции
- function greetings(greetings:string) {
- alert(greetings)
- }
- // greetings("Привет!") // вызывает alert("Привет!")
- //cube
- function cube(number: 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
- const avgOfTwo = (a: number, b: number) => (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
- const sumThree = (a: number = 0, b: number = 0, c: number = 0) => (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 включительно
- const intRandom = (min: number = 0, max?: number) =>
- 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"
- const greetAllDeclaration = function () {
- for (const arg of arguments) {
- console.log(`Hello darling ${arg} from function declaration`)
- }
- }
- // greetAllDeclaration("Superman")
- // greetAllDeclaration("Superman", "SpiderMan")
- // greetAllDeclaration("Superman", "SpiderMan", "Captain Obvious")
- const greetAllArrow = function (...argumentsArr:string[]) {
- for (const arg of argumentsArr) {
- 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
- const sumDeclaration = function () {
- let sum = 0;
- for(const arg of arguments ){
- sum +=arg
- }
- return sum
- }
- // sumDeclaration(1)
- // sumDeclaration(2)
- // sumDeclaration(10,20,40,100)
- const sumArrow = function (...argumentsArr:number[]) {
- let sum = 0;
- for(const arg of argumentsArr ){
- sum +=arg
- }
- return sum
- }
- // sumArrow(1)
- // sumArrow(2)
- // sumArrow(10,20,40,100)
- //Union
- //Всё предыдущие функции и примеры с ними объедините в функции, которые вызывайте в switch по имени задания:
- const eternalSample = () => {
- const 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
- const 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)
- const eternalSampleAssociativeArr = () => {
- const sample = prompt("Введите название задания")
- !sample && eternalSampleAssociativeArr()
- const getValue = associativeArr.get(sample.toLocaleLowerCase())
- getValue ?console.log(getValue):console.log('Whoopps>Try again and writy more exat!');
- eternalSampleAssociativeArr()
- }
- // eternalSampleAssociativeArr()
|