123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- // Задание1: Используя перебор массива arguments циклом for, сделайте функцию, которая складывает любое количество параметров
- function add() {
- let sum = 0;
- for (const argument of arguments) { sum += argument };
- console.log(sum);
- }
- add(1, 2, 3, 4, 5, 6, 7, 8, 9);
- add(30, 33, 45, 56);
- // Задание2: перепишите функции выше в стиле ES5 (function ....)
- // var sqr = x => x*x //один параметр, скобки не нужны
- // alert(sqr(2))
- // var mul = (x,y) => x*y //два параметра - нужны скобки
- // alert(mul(2,5))
- // var objectCreator = (x,y) => ({x, y}) //создает объект {x: x, y: y}. Если забыть скобки - то JS воспримет {x,y} как блок кода, и без return вернет undefined
- // console.log(objectCreator(4,5))
- // var longFunc = (x,y) => { //почти обычная функция
- // let result = prompt(x,y)
- // return result;
- // }
- // longFunc('check', 'text')
- function sqr(x) { return x * x }//один параметр, скобки не нужны
- alert(sqr(2))
- function mul(x, y) { return x * y }//два параметра - нужны скобки
- alert(mul(2,5))
- function objectCreator(x, y) { return( { x, y }) } //создает объект {x: x, y: y}. Если забыть скобки - то JS воспримет {x,y} как блок кода, и без return вернет undefined
- console.log(objectCreator(4,5))
- function longFunc (x,y) { //почти обычная функция
- let result = prompt(x,y)
- return result;
- }
- longFunc('check', 'text')
- // HW-1 a
- // Напишите функцию a, которая просто является коротким именем для alert.Смотрите пример с d(),
- // которая является коротким именем для debugger из материала лекции
- function a() {
- alert(...arguments);
- }
- a("Привет!") // вызывает alert("Привет!")
- // HW-2 cube
- // Напишите функцию cube, которая возвращает число в третьей степени:
- function cube() {
- const [b] = [...arguments];
- return b * b * b;
- }
- console.log(`cube(4)=${cube(4)}`);
- // HW-3 avg2
- // Напишите функцию avg2, которая рассчитывает среднюю для двух чисел:
- // формула для подсчета среднего: (a + b) / 2
- //avg2(1,2) // возвращает 1.5
- //avg2(10,5) // возвращает 7.5
- // const avg2 = (a, b) => (a + b) / 2;
- function avg2() {
- const [a, b] = [...arguments];
- console.log((a + b) / 2);
- return (a + b) / 2
- };
- console.log(`avg2(1,2)=${avg2(1,2)}` )
- console.log(`avg2(10,5)=${avg2(10,5)}`)
- // HW-4 sum3
- // Напишите функцию sum3 для суммирования 3 чисел:
- // Обратите внимание, что sum3 от двух параметров тоже работает корректно.
- function sum3() {
- const [a = 0, b = 0, c = 0] = [...arguments];
- console.log(a+b+c);
- return a + b + c;
- };
- console.log(`sum3(1,2,3)=${sum3(1,2,3)}`) // => 6
- console.log(`sum3(5,10,100500)=${sum3(5,10,100500)}`) // => 100515
- console.log(`sum3(5,10)=${sum3(5,10)}`) // => 15
- // HW-5 intRandom
- // Напишите функцию intRandom, которая принимает два параметра: нижнюю и верхнюю границу,
- // и возвращает целое случайное число из этого диапазона включительно:
- // Обратите внимание, что если передан один параметр(intRandom(10) в примере выше),
- // то функция работает как будто первый параметр равен 0, а переданный параметр становится вторым параметром(intRandom(0, 10))
- // Используйте умножение для расширения значения встроенной функции Math.random c диапозона 1,
- // сложениe для смещения результата на первый параметр, и Math.round для округления результата
- function intRandom() {
- let [min=0, max=0] = [...arguments];
- (arguments.length === 1) && (max = min) && (min = 0);
- let result;
- console.log(result = Math.round(Math.random() * (max - min) + min));
- return result;
- }
- intRandom(2,15) // возвращает целое случайное число от 2 до 15 (включительно)
- intRandom(-1,-1) // вернет -1
- intRandom(0,1) // вернет 0 или 1
- intRandom(10) // вернет 0 до 10 включительно
- // HW-6 greetAll
- // Сделайтей функцию, которая приветствует всех, кто передан в качестве параметров.
- // Вам поможет arguments и for
- function greetAll() {
- let persons='';
- for (const argument of arguments) { persons += argument + ', ' };
- alert(`Hello ${persons.slice(0, -2)}`)
- }
- greetAll("Superman") // выводит alert "Hello Superman"
- greetAll("Superman", "SpiderMan") // выводит alert "Hello Superman, SpiderMan"
- greetAll("Superman", "SpiderMan", "Captain Obvious") // выводит alert "Hello Superman, SpiderMan, Captain Obvious"
- // sum
- // Напишите функцию sum, которая сумирует любое количество параметров: Используйте псевдомассив arguments для получения всех параметров,
- // и for для итерирования по нему
- function sum() {
- let result = 0;
- for (const argument of arguments) { result += argument };
- console.log(`sum=${result}`);
- return result;
- }
- sum(1) // => 1
- sum(2) // => 2
- sum(10,20,40,100) // => 170
- // Union
- // Всё предыдущие функции и примеры с ними объедините в функции, которые вызывайте в switch по имени задания:
- function aSample(){
- a("Привет!") // вызывает alert("Привет!")
- }
- function cubeSample(){
- cube(5) // => 125
- }
- function avg2Sample() {
- avg2(10, 5)
- }
- function sum3Sample(){
- sum3(5,10)
- }
- function intRandomSample() {
- intRandom(10) // вернет 0 до 10 включительно
- }
- function greetAllSample(){
- greetAll("Superman", "SpiderMan", "Captain Obvious")
- }
- function sumSample(){
- sum(10,20,40,100)
- }
- var sample = prompt("Введите название задания");
- (function () {
- switch (sample.toLowerCase()) {
- case "a": aSample();
- break;
- case "cube": cubeSample()
- break;
- case "avg2": avg2Sample();
- break;
- case "sum3": sum3Sample();
- break;
- case "intRandom": intRandomSample();
- break;
- case "greetAll": greetAllSample();
- break;
- case "sum": sumSample();
- break;
- }
- }
- )();
- // Union declarative
- // Используйте ассоциативный массив вместо switch
- const funcObj = {
- 'a': function aSample() { a("Привет!")},
- 'cube': function cubeSample() { cube(5) },
- 'avg2': function avg2Sample() {avg2(10, 5) },
- 'sum3': function sum3Sample() {sum3(5, 10) },
- 'intRandom': function intRandomSample() {intRandom(10)},
- 'greetAll': function greetAllSample() { greetAll("Superman", "SpiderMan", "Captain Obvious") },
- 'sum': function sumSample() {sum(10, 20, 40, 100)}
- }
- var sample2 = prompt("Введите название задания еще раз");
- (function () {const key = sample2.toLowerCase(); funcObj[key]() })();
|