index.js 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. // Задание1: Используя перебор массива arguments циклом for, сделайте функцию, которая складывает любое количество параметров
  2. function add() {
  3. let sum = 0;
  4. for (const argument of arguments) { sum += argument };
  5. console.log(sum);
  6. }
  7. add(1, 2, 3, 4, 5, 6, 7, 8, 9);
  8. add(30, 33, 45, 56);
  9. // Задание2: перепишите функции выше в стиле ES5 (function ....)
  10. // var sqr = x => x*x //один параметр, скобки не нужны
  11. // alert(sqr(2))
  12. // var mul = (x,y) => x*y //два параметра - нужны скобки
  13. // alert(mul(2,5))
  14. // var objectCreator = (x,y) => ({x, y}) //создает объект {x: x, y: y}. Если забыть скобки - то JS воспримет {x,y} как блок кода, и без return вернет undefined
  15. // console.log(objectCreator(4,5))
  16. // var longFunc = (x,y) => { //почти обычная функция
  17. // let result = prompt(x,y)
  18. // return result;
  19. // }
  20. // longFunc('check', 'text')
  21. function sqr(x) { return x * x }//один параметр, скобки не нужны
  22. alert(sqr(2))
  23. function mul(x, y) { return x * y }//два параметра - нужны скобки
  24. alert(mul(2,5))
  25. function objectCreator(x, y) { return( { x, y }) } //создает объект {x: x, y: y}. Если забыть скобки - то JS воспримет {x,y} как блок кода, и без return вернет undefined
  26. console.log(objectCreator(4,5))
  27. function longFunc (x,y) { //почти обычная функция
  28. let result = prompt(x,y)
  29. return result;
  30. }
  31. longFunc('check', 'text')
  32. // HW-1 a
  33. // Напишите функцию a, которая просто является коротким именем для alert.Смотрите пример с d(),
  34. // которая является коротким именем для debugger из материала лекции
  35. function a() {
  36. alert(...arguments);
  37. }
  38. a("Привет!") // вызывает alert("Привет!")
  39. // HW-2 cube
  40. // Напишите функцию cube, которая возвращает число в третьей степени:
  41. function cube() {
  42. const [b] = [...arguments];
  43. return b * b * b;
  44. }
  45. console.log(`cube(4)=${cube(4)}`);
  46. // HW-3 avg2
  47. // Напишите функцию avg2, которая рассчитывает среднюю для двух чисел:
  48. // формула для подсчета среднего: (a + b) / 2
  49. //avg2(1,2) // возвращает 1.5
  50. //avg2(10,5) // возвращает 7.5
  51. // const avg2 = (a, b) => (a + b) / 2;
  52. function avg2() {
  53. const [a, b] = [...arguments];
  54. console.log((a + b) / 2);
  55. return (a + b) / 2
  56. };
  57. console.log(`avg2(1,2)=${avg2(1,2)}` )
  58. console.log(`avg2(10,5)=${avg2(10,5)}`)
  59. // HW-4 sum3
  60. // Напишите функцию sum3 для суммирования 3 чисел:
  61. // Обратите внимание, что sum3 от двух параметров тоже работает корректно.
  62. function sum3() {
  63. const [a = 0, b = 0, c = 0] = [...arguments];
  64. console.log(a+b+c);
  65. return a + b + c;
  66. };
  67. console.log(`sum3(1,2,3)=${sum3(1,2,3)}`) // => 6
  68. console.log(`sum3(5,10,100500)=${sum3(5,10,100500)}`) // => 100515
  69. console.log(`sum3(5,10)=${sum3(5,10)}`) // => 15
  70. // HW-5 intRandom
  71. // Напишите функцию intRandom, которая принимает два параметра: нижнюю и верхнюю границу,
  72. // и возвращает целое случайное число из этого диапазона включительно:
  73. // Обратите внимание, что если передан один параметр(intRandom(10) в примере выше),
  74. // то функция работает как будто первый параметр равен 0, а переданный параметр становится вторым параметром(intRandom(0, 10))
  75. // Используйте умножение для расширения значения встроенной функции Math.random c диапозона 1,
  76. // сложениe для смещения результата на первый параметр, и Math.round для округления результата
  77. function intRandom() {
  78. let [min=0, max=0] = [...arguments];
  79. (arguments.length === 1) && (max = min) && (min = 0);
  80. let result;
  81. console.log(result = Math.round(Math.random() * (max - min) + min));
  82. return result;
  83. }
  84. intRandom(2,15) // возвращает целое случайное число от 2 до 15 (включительно)
  85. intRandom(-1,-1) // вернет -1
  86. intRandom(0,1) // вернет 0 или 1
  87. intRandom(10) // вернет 0 до 10 включительно
  88. // HW-6 greetAll
  89. // Сделайтей функцию, которая приветствует всех, кто передан в качестве параметров.
  90. // Вам поможет arguments и for
  91. function greetAll() {
  92. let persons='';
  93. for (const argument of arguments) { persons += argument + ', ' };
  94. alert(`Hello ${persons.slice(0, -2)}`)
  95. }
  96. greetAll("Superman") // выводит alert "Hello Superman"
  97. greetAll("Superman", "SpiderMan") // выводит alert "Hello Superman, SpiderMan"
  98. greetAll("Superman", "SpiderMan", "Captain Obvious") // выводит alert "Hello Superman, SpiderMan, Captain Obvious"
  99. // sum
  100. // Напишите функцию sum, которая сумирует любое количество параметров: Используйте псевдомассив arguments для получения всех параметров,
  101. // и for для итерирования по нему
  102. function sum() {
  103. let result = 0;
  104. for (const argument of arguments) { result += argument };
  105. console.log(`sum=${result}`);
  106. return result;
  107. }
  108. sum(1) // => 1
  109. sum(2) // => 2
  110. sum(10,20,40,100) // => 170
  111. // Union
  112. // Всё предыдущие функции и примеры с ними объедините в функции, которые вызывайте в switch по имени задания:
  113. function aSample(){
  114. a("Привет!") // вызывает alert("Привет!")
  115. }
  116. function cubeSample(){
  117. cube(5) // => 125
  118. }
  119. function avg2Sample() {
  120. avg2(10, 5)
  121. }
  122. function sum3Sample(){
  123. sum3(5,10)
  124. }
  125. function intRandomSample() {
  126. intRandom(10) // вернет 0 до 10 включительно
  127. }
  128. function greetAllSample(){
  129. greetAll("Superman", "SpiderMan", "Captain Obvious")
  130. }
  131. function sumSample(){
  132. sum(10,20,40,100)
  133. }
  134. var sample = prompt("Введите название задания");
  135. (function () {
  136. switch (sample.toLowerCase()) {
  137. case "a": aSample();
  138. break;
  139. case "cube": cubeSample()
  140. break;
  141. case "avg2": avg2Sample();
  142. break;
  143. case "sum3": sum3Sample();
  144. break;
  145. case "intRandom": intRandomSample();
  146. break;
  147. case "greetAll": greetAllSample();
  148. break;
  149. case "sum": sumSample();
  150. break;
  151. }
  152. }
  153. )();
  154. // Union declarative
  155. // Используйте ассоциативный массив вместо switch
  156. const funcObj = {
  157. 'a': function aSample() { a("Привет!")},
  158. 'cube': function cubeSample() { cube(5) },
  159. 'avg2': function avg2Sample() {avg2(10, 5) },
  160. 'sum3': function sum3Sample() {sum3(5, 10) },
  161. 'intRandom': function intRandomSample() {intRandom(10)},
  162. 'greetAll': function greetAllSample() { greetAll("Superman", "SpiderMan", "Captain Obvious") },
  163. 'sum': function sumSample() {sum(10, 20, 40, 100)}
  164. }
  165. var sample2 = prompt("Введите название задания еще раз");
  166. (function () {const key = sample2.toLowerCase(); funcObj[key]() })();