HW09.js 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. // blocks
  2. {
  3. // готово
  4. }
  5. // comparison if
  6. // Разберите пример
  7. // Добавьте условие отрицательного возраста в пример выше.Расставьте недостающие(но синтаксически необязательные) фигурные скобки.Выкиньте лишнее из текущего кода
  8. {
  9. const age = +prompt("Сколько вам лет?", "");
  10. if (age < 0) {
  11. alert("Косишь под Бенджамина Баттона")
  12. }
  13. else {
  14. if (age < 18) {
  15. alert("школьник");
  16. }
  17. else {
  18. if (age < 30) {
  19. alert("молодеж");
  20. }
  21. else {
  22. if (age < 45) {
  23. alert("зрелость");
  24. }
  25. else {
  26. if (age < 60) {
  27. alert("закат");
  28. }
  29. else {
  30. if (age > 60) {
  31. alert("как пенсия?");
  32. }
  33. else {
  34. alert("то ли киборг, то ли KERNESS");
  35. }
  36. }
  37. }
  38. }
  39. }
  40. }
  41. }
  42. // switch: sizes
  43. // Сделайте задание Comparison: sizes используя switch
  44. {
  45. const sizes = prompt('Введите, размер чего будем ковертировать в американскую систему размеров:\nверхняя одежда, платья, брюки, женское белье, чулки, носки')
  46. switch (sizes) {
  47. case 'верхняя одежда':
  48. case 'платья':
  49. case 'брюки':
  50. let firstPart = +prompt('Введите размер одежды в Украине')
  51. alert(`Украинский ${firstPart} размер соответствует американскому ${6 + firstPart % 40} размеру`)
  52. break;
  53. case 'женское белье':
  54. let secondPart = +prompt('Введите размер одежды в Украине')
  55. alert(`Украинский ${secondPart} размер соответствует американскому ${8 + secondPart % 42} размеру`)
  56. break;
  57. case 'чулки':
  58. let thirdPart = +prompt('Введите размер одежды в Украине')
  59. alert(`Украинский ${thirdPart} размер соответствует американскому ${8 + (thirdPart % 21) / 2} размеру`)
  60. break;
  61. default: alert('Неправильная категория/мы такое не считаем')
  62. }
  63. }
  64. // switch: if
  65. // Перепишите пример ниже, используя if
  66. // Обратите внимание, на пропуски break
  67. {
  68. let color = prompt("Введите цвет", "");
  69. if (color === 'red') {
  70. document.write("<div style='background-color: red;'>красный</div>")
  71. document.write("<div style='background-color: black; color: white;'>черный</div>")
  72. }
  73. else if (color === 'black') {
  74. document.write("<div style='background-color: black; color: white;'>черный</div>")
  75. }
  76. else if (color === 'blue') {
  77. document.write("<div style='background-color: blue;'>синий</div>")
  78. document.write("<div style='background-color: green;'>зеленый</div>");
  79. }
  80. else if (color === 'green') {
  81. document.write("<div style='background-color: green;'>зеленый</div>")
  82. }
  83. else {
  84. document.write("<div style='background-color: gray;'>Я не понял</div>")
  85. }
  86. }
  87. // noswitch
  88. // Напишите функцию noSwitch, которая принимает объект со значениями - функциями, ключ для объекта и запускает одну из функций из объекта если ключ найден, иначе - запускает default:
  89. {
  90. const noSwitch = (key, cases, defaultKey = 'default') => {
  91. if (key in cases)
  92. cases[key]()
  93. else cases.defaultKey()
  94. }
  95. const drink = prompt("Что вы любите пить")
  96. noSwitch(drink, {
  97. воду: () => console.log('Самый здоровый выбор!'),
  98. чай() {
  99. console.log('Вкусная и полезная штука. Не переусердствуйте с сахаром')
  100. },
  101. "пиво": () => console.log('Хорошо летом, да в меру'),
  102. виски: function () {
  103. console.log('Да вы, батенька, эстет! Не забудьте лед и сигару')
  104. },
  105. defaultKey() {
  106. console.log('шото я не понял')
  107. }
  108. })
  109. }
  110. // closure calc
  111. // Напишите внутри анонимной функции, переданной в then(data =>):
  112. // цикл, который перебирает курсы;
  113. // на каждой итерации создается кнопка(document.createElement)
  114. // текст кнопки - название валюты(innerHTML или innerText)
  115. // Назначьте обработчик события на этой кнопке(onclick = () => {.....}).Функция - обработчик должна быть написана прямо в теле цикла
  116. // Обработчик должен спрашивать сумму используя prompt и переводить эту суммы из валюты, написанной на кнопке в USD
  117. // Найдите замыкания. Для доступа к валютам из data.rates используйте[], .тут не поможет.Кнопки добавляйте в специальный контейнер(div например), созданный в HTML, или, на худой конец, в body
  118. {
  119. fetch('https://open.er-api.com/v6/latest/USD').then(res => res.json())
  120. .then(data => {
  121. const div = document.createElement('div')
  122. document.body.append(div)
  123. for (const [currency, value] of Object.entries(data.rates)) {
  124. const btn = document.createElement('button')
  125. btn.style.cssText = `
  126. min-width: 50px;
  127. margin: 0 5px 5px;
  128. `
  129. div.append(btn)
  130. btn.innerText = `${currency}`
  131. btn.onclick = () => {
  132. const summ = +prompt('Введите сумму в валюте кнопки')
  133. alert(`Это равно ${(summ / value).toFixed(2)} долларов`)
  134. }
  135. }
  136. // console.log(data) //изучите структуру, получаемую с сервера в консоли
  137. })
  138. }
  139. // closure calc 2
  140. {
  141. // реализовано в файле HW09.html
  142. }
  143. // countries and cities
  144. {
  145. // реализовано в файле HW09.html
  146. }