js02_theory.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. // Сформируйте объект с массивами и массив с объектами с осмысленными данными.
  2. let firstClassPassengers = ["fio_1", "fio_2", "fio_3", "fio_4", "fio_5"];
  3. let businessClassPassengers = ["fio_6", "fio_7", "fio_8", "", "fio_9"];
  4. let economClassPassengers = ["fio_10", "fio_11", "fio_12", "fio_13", "fio_14"];
  5. let plainKhakovRio = {
  6. dateOfFly: '2020-11-08',
  7. firstClass: firstClassPassengers,
  8. businessClass: businessClassPassengers,
  9. economClass: economClassPassengers
  10. }
  11. var age = +prompt("Сколько вам лет?", "");
  12. if (age < 0) { alert("похоже вы еще не родились :))") }
  13. else {
  14. if (age < 18) { alert("школьник или еще меньше") }
  15. else {
  16. if (age < 30) { alert("молодежь") }
  17. else {
  18. if (age < 45) { alert("зрелость") }
  19. else {
  20. if (age < 60) { alert("закат") }
  21. else {
  22. if (age < 100) { alert("как пенсия?") }
  23. else {
  24. alert("то ли киборг, то ли ошибка")
  25. }
  26. }
  27. }
  28. }
  29. }
  30. }
  31. var color = prompt("Введите цвет", "");
  32. switch (color) {
  33. case "red": document.write("<div style='background-color: red;'>красный</div>");
  34. break;
  35. case "black": document.write("<div style='background-color: black; color: white;'>черный</div>");
  36. break;
  37. case "blue": document.write("<div style='background-color: blue;'>синий</div>");
  38. break;
  39. case "green": document.write("<div style='background-color: green;'>зеленый</div>");
  40. break;
  41. default: document.write("<div style='background-color: gray;'>Я не понял</div>");
  42. }
  43. if (color == "red") { document.write("<div style='background-color: red;'>красный</div>"); }
  44. else {
  45. if (color == "black") { document.write("<div style='background-color: black; color: white;'>черный</div>") }
  46. else {
  47. if (color == "blue") { document.write("<div style='background-color: blue;'>синий</div>") }
  48. else {
  49. if (color == "green") { document.write("<div style='background-color: green;'>зеленый</div>"); }
  50. else { document.write("<div style='background-color: gray;'>Я не понял</div>"); }
  51. }
  52. }
  53. }
  54. // Исследуйте код, найдите выражения в нём.
  55. // Расставьте скобки так, что бы код не изменил своего поведения(работал так же как и сейчас).
  56. // Объясните как и в каком порядке вычисляются выражения и подвыражения.
  57. var a = 5;
  58. var b, c;
  59. b = (a * 5);
  60. b = (c = (b / 2)); //порядок вычислений: b/2, этот результат заносится в переменную "c", значение "с" заносится в "b"
  61. // ===============================================
  62. // semicolon: error
  63. // Сделайте несколько примеров кода, отсутствие; в которых приводит к синтаксической ошибке
  64. //https://habr.com/ru/post/111563/
  65. var a = 5; b = "asdf"
  66. // ================================================
  67. // semicolon: mistake
  68. // Сделайте несколько примеров кода, наличиe или отсутствие; в которых приводит
  69. // к логической ошибке
  70. // (т.е.код выполняется без синтаксических ошибок, но делает не то, что задумано)
  71. b = "5";
  72. a = 2;
  73. a = 2 + +b; // a = 2; + +b;
  74. for (node = getNode();
  75. node.parent;
  76. node = node.parent);
  77. // ================================================
  78. // Number: age
  79. // С помощью prompt спросить у пользователя его возраст
  80. // и подсчитать год рождения.Год рождения вывести с помощью alert.
  81. alert(`Вы родились в ${new Date().getFullYear() - +(prompt("Сколько лет вам исполнится (исполнилось) в этом году?"))} году, \nконечно, если дата на компьютере установлена правильно.`);
  82. // ================================================
  83. // Number: odd
  84. // С помощью prompt узнайте число, введенное пользователем.
  85. // С помощью if проверьте что число корректно преобразовано из строки.
  86. // В случае ошибки выведите сообщение Выведите четное число или нет, используя if.
  87. var a = prompt("Input a number:");
  88. if (+a || +a == 0) {
  89. if ((a % 2) == 0) { alert("Even") }
  90. else { alert("Odd") }
  91. }
  92. else alert("Not a number");
  93. // ================================================
  94. // Boolean: if
  95. // если вы спрашиваете пол пользователя с помощью confirm,
  96. // то по условию сделайте alert("Вы женщина") и alert("Вы мужчина")
  97. (confirm("Вы мужчина?")) ? alert("Man") : alert("Women");
  98. // ================================================
  99. // Array: booleans
  100. // Создайте массив с переменными из заданий Boolean и Boolean if.
  101. var a = [
  102. confirm("Вы мужчина?"),
  103. confirm("Вам больше 18 лет?"),
  104. confirm("Вы всостоите в браке?"),
  105. confirm("У вас есть дети?")
  106. ]; //(4) [true, true, true, true]
  107. // ================================================
  108. // Object: real
  109. // Найдите те или иные реальные объекты и найдите их свойства.
  110. // Например у маркера это цвет, толщина, уровень зарядки(количество краски)
  111. // Создайте объекты с помощью { }.
  112. // В качестве образца посмотрите объект персоны из материала предыдущего занятия
  113. var myExCar = {
  114. name: "VAZ",
  115. model: "2104",
  116. emission: 1992,
  117. color: "red",
  118. status: "Valid",
  119. getAge: function () { return (new Date().getFullYear() - this.emission) }
  120. }
  121. // Поменяйте значения свойств в ваших объектах, используя[] и.и присвоения.
  122. myExCar.status = "Sold";
  123. myExCar.dateOfSold = 2020;
  124. Alert(myExCar.getAge()); //28 лет
  125. // ================================================
  126. var color = prompt("Введите цвет", "");
  127. switch (color) {
  128. case "red": document.write("<div style='background-color: red;'>красный</div>");
  129. case "black": document.write("<div style='background-color: black; color: white;'>черный</div>");
  130. break;
  131. case "blue": document.write("<div style='background-color: blue;'>синий</div>");
  132. case "green": document.write("<div style='background-color: green;'>зеленый</div>");
  133. break;
  134. default: document.write("<div style='background-color: gray;'>Я не понял</div>");
  135. }
  136. // Перепишите пример выше, используя if-else
  137. let color = "1";
  138. // debugger;
  139. while (color !== 'stop') {
  140. color = prompt("Введите цвет", "");
  141. if ((color === "black") || (color === "red")) {
  142. if (color === "red") { document.write("<div style='background-color: red;'>красный</div>"); }
  143. document.write("<div style='background-color: black; color: white;'>черный</div>");
  144. } else {
  145. if ((color === "blue") || (color === "green")) {
  146. if (color === "blue") { document.write("<div style='background-color: blue;'>синий</div>"); }
  147. document.write("<div style='background-color: green;'>зеленый</div>");
  148. } else { document.write("<div style='background-color: gray;'>Я не понял</div>") }
  149. }
  150. }
  151. // ================================================
  152. let a = {
  153. pole1: 1,
  154. pole2: 2,
  155. pole3: 3,
  156. }
  157. // вывести значения всех полей объекта
  158. Object.keys(a).forEach(function (currentvalue) { console.log(a[currentvalue]) })
  159. // получить массив имен всех полей объекта
  160. b = Object.keys(a)
  161. //вывести имена всех полей
  162. Object.keys(a).forEach(function (currentvalue) { console.log(currentvalue) })
  163. //вывести имена полей объекта и сразу их значения
  164. Object.keys(tablOfSize).forEach(function (currentvalue) { console.log(currentvalue); console.log(tablOfSize[currentvalue]) })
  165. // ======================================================
  166. // двумерный массив
  167. var n = 4, m = 4;
  168. var mas = [];
  169. for (var i = 0; i < m; i++) {
  170. mas[i] = [];
  171. for (var j = 0; j < n; j++) {
  172. mas[i][j] = 0;
  173. }
  174. }
  175. console.log(mas);
  176. // ======================================================
  177. // Подумайте о том, как можно применить объекты к:
  178. // Сделайте перевод перевод из нашей системы размеров в американскую
  179. // или любую на выбор.Используйте prompt, условия сравнения и alert.
  180. let tablOfSize = {
  181. ru: {
  182. countryName: "россия",
  183. size: [40, 42, 44, 46, 48, 50, 52, 54,]
  184. },
  185. eu1: {
  186. countryName: "бельгия германия нидерланды норвегия финляндия швеция",
  187. size: [34, 36, 38, 40, 42, 44, 46, 48,]
  188. },
  189. eu2: {
  190. countryName: "франция швейцария",
  191. size: [36, 38, 40, 42, 44, 46, 48, 50,]
  192. },
  193. italy: {
  194. countryName: "италия",
  195. size: [38, 40, 42, 44, 46, 48, 50, 52,]
  196. },
  197. gb: {
  198. countryName: "великобритания",
  199. size: [8, 10, 12, 14, 16, 18, 20, 22,]
  200. },
  201. usa: {
  202. countryName: "сша",
  203. size: [6, 8, 10, 12, 14, 16, 18, 20,]
  204. },
  205. usa2: {
  206. countryName: "сша",
  207. size: ["S", "M", "", "L", "", "XL", "", "XXL",]
  208. },
  209. }
  210. let inputCountry;
  211. let inputSise;
  212. let targetCountry;
  213. let countOfSize = (-1);
  214. let targetSize = ""
  215. let tempString;
  216. function ucFirst(str) {
  217. if (!str) return str;
  218. if (str === "сша") return "США";
  219. return str[0].toUpperCase() + str.slice(1);
  220. }
  221. while (inputCountry = (prompt("Введите название страны 1:", "Россия")).toLowerCase()) {
  222. inputSise = +(prompt(`Введите размер одежды в этой стране ${inputCountry}:`, "46"));
  223. targetCountry = (prompt("Введите название страны 2:", "Россия")).toLowerCase();
  224. Object.keys(tablOfSize).forEach(function (currentvalue) {
  225. if ((tablOfSize[currentvalue].countryName).includes(inputCountry)) { countOfSize = tablOfSize[currentvalue].size.indexOf(inputSise) };
  226. });
  227. Object.keys(tablOfSize).forEach(function (currentvalue) {
  228. if ((tablOfSize[currentvalue].countryName).includes(targetCountry)) { targetSize += (tablOfSize[currentvalue].size[countOfSize] + ", ") };
  229. });
  230. inputCountry = ucFirst(inputCountry);
  231. targetCountry = ucFirst(targetCountry);
  232. alert(`${inputCountry} - ${inputSise}\n${targetCountry} - ${targetSize.substring(0, targetSize.length - 2)}`);
  233. targetSize = "";
  234. }