123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- // ДЗ: Ветвления
- // задание 1 blocks
- {
- let a = 10;
- {
- let b = 20;
- {
- let c = 30;
- // значения переменных: a=10, b=20, c=30, d=undefined
- b++;
- a *= 10;
- }
- {
- let c = 50;
- // значения переменных: a=100, b=21, c=50, d=undefined
- b += 500;
- }
- {
- const a = 100500;
- const d = 'value';
- // значения переменных: a=100500, b=521, c=50, d="value"
- {
- let a = -50;
- b = 1000;
- // значения переменных: a=-50, b=1000, c=50, d="value"
- }
- // значения переменных: a=100500, b=1000, c=50, d="value"
- }
- // значения переменных: a=100, b=1000, c=50, d=undefined
- }
- // значения переменных: a=10, b=undefined, c=undefined, d=undefined
- }
- // задание 2 comparison if
- {
- var age = +prompt('Сколько вам лет?', '');
- if (age < 0) {
- alert('Отрицательный возраст? Что-то не так...');
- } else if (age < 18) {
- alert('школьник');
- } else if (age < 30) {
- alert('молодеж');
- } else if (age < 45) {
- alert('зрелость');
- } else if (age < 60) {
- alert('закат');
- } else if (age < 100) {
- alert('как пенсия?');
- } else {
- alert('то ли киборг, то ли KERNESS');
- }
- }
- // задание 3 switch: sizes
- {
- const size = prompt('Введите размер одежды в украинской системе');
- let convertedSize;
- switch (size) {
- case 'XS':
- convertedSize = '0';
- break;
- case 'S':
- convertedSize = '2';
- break;
- case 'M':
- convertedSize = '4';
- break;
- case 'L':
- convertedSize = '6';
- break;
- case 'XL':
- convertedSize = '8';
- break;
- case 'XXL':
- convertedSize = '10';
- break;
- default:
- convertedSize = 'Неизвестный размер';
- }
- alert(`Американский размер: ${convertedSize}`);
- }
- // задание 4 switch: if
- {
- let color = prompt('Введите цвет', '');
- if (color === 'red') {
- document.write("<div style='background-color: red;'>красный</div>");
- } else if (color === 'black') {
- document.write("<div style='background-color: black; color: white;'>черный</div>");
- } else if (color === 'blue') {
- document.write("<div style='background-color: blue;'>синий</div>");
- } else if (color === 'green') {
- document.write("<div style='background-color: green;'>зеленый</div>");
- } else {
- document.write("<div style='background-color: gray;'>Я не понял</div>");
- }
- }
- // задание 5 noswitch
- {
- const noSwitch = (key, cases, defaultKey = 'default') => {
- if (key in cases) {
- return cases[key]();
- } else {
- return cases[defaultKey]();
- }
- };
- const drink = prompt('Что вы любите пить');
- noSwitch(drink, {
- воду: () => console.log('Самый здоровый выбор!'),
- чай() {
- console.log('Вкусная и полезная штука. Не переусердствуйте с сахаром');
- },
- пиво: () => console.log('Хорошо летом, да в меру'),
- виски: function () {
- console.log('Да вы, батенька, эстет! Не забудьте лед и сигару');
- },
- default() {
- console.log('шото я не понял');
- },
- });
- }
- // задание 6 closure calc
- {
- fetch('https://open.er-api.com/v6/latest/USD')
- .then((res) => res.json())
- .then((data) => {
- // создаем контейнер для кнопок
- const container = document.createElement('div');
- // перебираем курсы валют
- for (const currency in data.rates) {
- // создаем кнопку
- const button = document.createElement('button');
- // устанавливаем текст кнопки
- button.innerHTML = currency;
- // назначаем обработчик события нажатия на кнопку
- button.onclick = () => {
- // запрашиваем сумму у пользователя
- const amount = prompt('Введите сумму');
- // выводим результат перевода в консоль
- console.log(`${amount} ${currency} = ${amount * data.rates[currency]} USD`);
- };
- // добавляем кнопку в контейнер
- container.appendChild(button);
- }
- // добавляем контейнер с кнопками на страницу
- document.body.appendChild(container);
- });
- }
- // задание 7 closure calc 2
- {
- // получаем элементы страницы
- const from = document.getElementById('from');
- const to = document.getElementById('to');
- const rate = document.getElementById('rate');
- const amount = document.getElementById('amount');
- const result = document.getElementById('result');
- // функция для обновления курса и результата
- function update() {
- // вычисляем курс
- const exchangeRate = rates[to.value] / rates[from.value];
- // обновляем текст в div#rate
- rate.innerText = `1 ${from.value} = ${exchangeRate} ${to.value}`;
- // вычисляем результат
- result.innerText = `${amount.value} ${from.value} = ${amount.value * exchangeRate} ${to.value}`;
- }
- fetch('https://open.er-api.com/v6/latest/USD')
- .then((res) => res.json())
- .then((data) => {
- // сохраняем курсы валют
- const rates = data.rates;
- // перебираем курсы валют
- for (const currency in rates) {
- // создаем опцию
- const option = document.createElement('option');
- // устанавливаем текст опции
- option.innerText = currency;
- // добавляем опцию в селекты
- from.appendChild(option);
- to.appendChild(option.cloneNode(true));
- }
- // назначаем обработчики событий для элементов управления
- from.onchange = update;
- to.onchange = update;
- amount.oninput = update;
- // инициализируем первоначальный курс и результат
- update();
- });
- }
- // задание 8 countries and cities
- {
- // получаем элементы страницы
- const countries = document.getElementById('countries');
- const cities = document.getElementById('cities');
- fetch(
- 'https://raw.githubusercontent.com/russ666/all-countries-and-cities-json/master/countries.min.json',
- )
- .then((res) => res.json())
- .then((data) => {
- // перебираем страны
- for (const country of data) {
- // создаем опцию
- const option = document.createElement('option');
- // устанавливаем текст опции
- option.innerText = country.name;
- // добавляем опцию в селект стран
- countries.appendChild(option);
- }
- // назначаем обработчик события onchange в селекте стран
- countries.onchange = function () {
- // удаляем старый контент селекта городов
- cities.innerHTML = '';
- // получаем индекс выбранной страны
- const index = countries.selectedIndex;
- // перебираем города этой страны
- for (const city of data[index].cities) {
- // создаем опцию
- const option = document.createElement('option');
- // устанавливаем текст опции
- option.innerText = city;
- // добавляем опцию в селект городов
- cities.appendChild(option);
- }
- };
- });
- }
|