|
@@ -1,29 +1,34 @@
|
|
|
-//1. blocks
|
|
|
-/*let a = 10
|
|
|
-{
|
|
|
- let b = 20
|
|
|
+//1. blocks +
|
|
|
+/*{
|
|
|
+ let a = 10
|
|
|
{
|
|
|
- let c = 30
|
|
|
- //какие тут будут значения переменных a,b,c,d
|
|
|
+ let b = 20
|
|
|
+ {
|
|
|
+ let c = 30
|
|
|
+ //a === 10, b === 20, c === 30
|
|
|
|
|
|
- b++
|
|
|
- a *= 10
|
|
|
- }
|
|
|
- {
|
|
|
- let c = 50
|
|
|
- //какие тут будут значения переменных a,b,c,d
|
|
|
- b += 500
|
|
|
- }
|
|
|
- {
|
|
|
- const a = 100500
|
|
|
- const d = "value"
|
|
|
- //какие тут будут значения переменных a,b,c,d
|
|
|
+ b++
|
|
|
+ a *= 10
|
|
|
+ }
|
|
|
{
|
|
|
- let a = -50
|
|
|
- b = 1000
|
|
|
- //какие тут будут значения переменных a,b,c,d
|
|
|
+ let c = 50
|
|
|
+ //a === 100, b === 21, c === 50
|
|
|
+ b += 500
|
|
|
}
|
|
|
+ {
|
|
|
+ const a = 100500
|
|
|
+ const d = "value"
|
|
|
+ //a === 100500, b === 521, c === нет переменной, d === value
|
|
|
+ {
|
|
|
+ let a = -50
|
|
|
+ b = 1000
|
|
|
+ debugger;//a === -50, b === 1000, c === нет переменной, d === value
|
|
|
+ }
|
|
|
+ debugger;//a === 100500, b === 1000, c === нет переменной, d === value
|
|
|
+ }
|
|
|
+ debugger;//a === 100, b === 1000
|
|
|
}
|
|
|
+ debugger;//a === 100
|
|
|
}
|
|
|
*/
|
|
|
|
|
@@ -33,28 +38,38 @@
|
|
|
// фигурные скобки. Выкиньте лишнее из текущего кода
|
|
|
/*
|
|
|
let age = +prompt("Сколько вам лет?","");
|
|
|
-if (age > 6 && age <= 18){
|
|
|
- alert("школьник");
|
|
|
-}
|
|
|
-else if (age < 0) {
|
|
|
- alert("ты еще не родился?")
|
|
|
-}
|
|
|
-else if (age > 18 && age < 30){
|
|
|
- alert("молодеж");
|
|
|
-}
|
|
|
-else if (age > 30 && age < 45){
|
|
|
- alert("зрелость");
|
|
|
-}
|
|
|
-else if (age > 45 && age < 60){
|
|
|
- alert("закат");
|
|
|
-}
|
|
|
-else if (age > 60){
|
|
|
- alert("как пенсия?");
|
|
|
+if (age < 0) {
|
|
|
+ alert("ещё не родился");
|
|
|
}
|
|
|
else {
|
|
|
- alert("то ли киборг, то ли KERNESS");
|
|
|
-}
|
|
|
-*/
|
|
|
+ if (age < 18) {
|
|
|
+ alert("школьник");
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ if (age < 30) {
|
|
|
+ alert("молодеж");
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ if (age < 45) {
|
|
|
+ alert("зрелость");
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ if (age < 60) {
|
|
|
+ alert("закат");
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ if (age >= 60) {
|
|
|
+ alert("как пенсия?");
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ alert("то ли киборг, то ли KERNESS");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+} */
|
|
|
+
|
|
|
//3. switch: sizes +
|
|
|
// Сделайте задание Comparison: sizes используя switch
|
|
|
/*{
|
|
@@ -147,7 +162,7 @@ else {
|
|
|
})
|
|
|
} */
|
|
|
|
|
|
-//6. closure calc
|
|
|
+//6. closure calc +
|
|
|
// Напишите внутри анонимной функции, переданной в then (data =>):
|
|
|
// цикл, который перебирает курсы;
|
|
|
// на каждой итерации создается кнопка (document.createElement)
|
|
@@ -158,24 +173,22 @@ else {
|
|
|
//
|
|
|
// Найдите замыкания. Для доступа к валютам из data.rates используйте [], . тут не поможет. Кнопки добавляйте в
|
|
|
// специальный контейнер (div например), созданный в HTML, или, на худой конец, в body
|
|
|
+/*{
|
|
|
+ fetch('https://open.er-api.com/v6/latest/USD').then(res => res.json())
|
|
|
+ .then(data => {
|
|
|
+ let button = document.createElement( "button" ) // создаем новый элемент <button>
|
|
|
+ button.innerText = key;
|
|
|
+ document.body.appendChild(button); // добавляем наш элемент в элемент <body>
|
|
|
|
|
|
-/*
|
|
|
-fetch('https://open.er-api.com/v6/latest/USD').then(res => res.json())
|
|
|
- .then(data => {
|
|
|
- for (const [key,value] of Object.entries(data.rates)) {
|
|
|
- let button = document.createElement( "button" ) // создаем новый элемент <button>
|
|
|
- button.innerText = key;
|
|
|
- document.body.append(button); // добавляем наш элемент в элемент <body>
|
|
|
-
|
|
|
- button.onclick = () => {
|
|
|
- let sum = prompt("Введите сумму в выбраной валюте");
|
|
|
- let result = (sum / value).toFixed(2);
|
|
|
- alert(`Результат операции ${result} $`)
|
|
|
+ button.onclick = () => {
|
|
|
+ let sum = prompt("Введите сумму в выбраной валюте");
|
|
|
+ let result = (sum / value).toFixed(2);
|
|
|
+ alert(`Результат операции ${result} $`)
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- console.log(data) //изучите структуру, получаемую с сервера в консоли
|
|
|
- })
|
|
|
-*/
|
|
|
+ console.log(data) //изучите структуру, получаемую с сервера в консоли
|
|
|
+ })
|
|
|
+} */
|
|
|
|
|
|
//7. closure calc 2 +
|
|
|
//Используя заготовку из предыдущего задания, наполните select-ы тэгами option с названиями валют, используя цикл
|
|
@@ -187,40 +200,32 @@ fetch('https://open.er-api.com/v6/latest/USD').then(res => res.json())
|
|
|
//
|
|
|
// Для чтения текущего значения select используйте свойство value: from.value или to.value
|
|
|
//Создайте HTML файл с :
|
|
|
-
|
|
|
-fetch('https://open.er-api.com/v6/latest/USD').then(res => res.json())
|
|
|
- .then(data => {
|
|
|
-
|
|
|
- for (let [key,value] of Object.entries(data.rates)) {
|
|
|
- let currencyFromOption = document.createElement('option');
|
|
|
- let currencyFromSelect = document.getElementById('from');
|
|
|
-
|
|
|
- currencyFromOption.innerHTML= key;
|
|
|
- currencyFromSelect.appendChild(currencyFromOption);
|
|
|
-
|
|
|
- let currencyToOption = document.createElement('option');
|
|
|
- let currencyToSelect = document.getElementById('to');
|
|
|
-
|
|
|
- currencyToOption.innerHTML= key;
|
|
|
- currencyToSelect.appendChild(currencyToOption);
|
|
|
-
|
|
|
- document.getElementById('from').addEventListener('change', function (){
|
|
|
- let rateCurrencyFrom = document.getElementById('rateFrom');
|
|
|
- rateCurrencyFrom.innerHTML = value;
|
|
|
- })
|
|
|
-
|
|
|
- document.getElementById('to').addEventListener('change', function (){
|
|
|
- let rateCurrencyTo = document.getElementById('rateTo');
|
|
|
- rateCurrencyTo.innerHTML = value;
|
|
|
- })
|
|
|
-
|
|
|
- }
|
|
|
- const amountInput = document.getElementById('amount')
|
|
|
- amountInput.type = 'number'
|
|
|
- amountInput.value = '100'
|
|
|
-
|
|
|
- })
|
|
|
-
|
|
|
+//
|
|
|
+// fetch('https://open.er-api.com/v6/latest/USD').then(res => res.json())
|
|
|
+// .then(data => {
|
|
|
+// const from = document.getElementById('from');
|
|
|
+// const to = document.getElementById('to');
|
|
|
+// const exchangeRate = document.getElementById('rate')
|
|
|
+// const amount = document.getElementById('amount');
|
|
|
+// const result = document.getElementById('result');
|
|
|
+//
|
|
|
+// for (let [rate, course] of Object.entries(data.rates)) {
|
|
|
+//
|
|
|
+// const optionFrom = document.createElement('option')
|
|
|
+// const optionTo = document.createElement('option')
|
|
|
+//
|
|
|
+// optionFrom.innerHTML = optionTo.innerHTML = rate
|
|
|
+// optionTo.value = optionFrom.value = rate
|
|
|
+//
|
|
|
+// from.append(optionFrom);
|
|
|
+// to.append(optionTo);
|
|
|
+// }
|
|
|
+//
|
|
|
+// from.onchange = to.onchange = amount.oninput = () => {
|
|
|
+// exchangeRate.innerHTML = (data.rates[to.value] / data.rates[from.value]).toFixed(3)
|
|
|
+// result.innerHTML = (data.rates[to.value] / data.rates[from.value] * amount.value).toFixed(2)
|
|
|
+// }
|
|
|
+// })
|
|
|
|
|
|
//8. countries and cities
|
|
|
//По аналогии с предыдущем заданием, реализуйте интерфейс выбора страны и города:
|
|
@@ -230,33 +235,29 @@ fetch('https://open.er-api.com/v6/latest/USD').then(res => res.json())
|
|
|
// удаляет старый контент select#cities (достаточно занести в innerHTML или innerText пустую строку)
|
|
|
// добавляет в select#cities элементы option с городами из выбранной только что страны.
|
|
|
// Таким образом, при изменении страны будет меняться список городов в select#cities
|
|
|
-/*
|
|
|
{
|
|
|
-fetch('https://raw.githubusercontent.com/russ666/all-countries-and-cities-json/master/countries.min.json').then(res => res.json())
|
|
|
- .then(data => {
|
|
|
+ fetch('https://raw.githubusercontent.com/russ666/all-countries-and-cities-json/master/countries.min.json').
|
|
|
+ then(res => res.json())
|
|
|
+ .then(data => {
|
|
|
|
|
|
- for (let key in data) {
|
|
|
- let countryOption = document.createElement('option');
|
|
|
- let countrySelect = document.getElementById('countrySelect');
|
|
|
+ const countries = document.getElementById('countrySelect');
|
|
|
+ const cities = document.getElementById('citySelect')
|
|
|
|
|
|
- countryOption.innerHTML = key;
|
|
|
- countrySelect.append(countryOption);
|
|
|
- }
|
|
|
-
|
|
|
- document.getElementById('countrySelect').addEventListener('change', function () {
|
|
|
- let cities = data[this.value];
|
|
|
- //citySelect.length = 0;
|
|
|
- console.log(cities);
|
|
|
-
|
|
|
- for (const iterator of cities) {
|
|
|
- let cityOption = document.createElement('option');
|
|
|
- let citySelect = document.getElementById('citySelect');
|
|
|
+ for (country in data){
|
|
|
+ const optionCounty = document.createElement('option')
|
|
|
+ optionCounty.innerText = optionCounty.value = country
|
|
|
+ countries.append(optionCounty)
|
|
|
+ }
|
|
|
|
|
|
- cityOption.innerHTML = iterator;
|
|
|
- citySelect.append(cityOption)
|
|
|
+ countries.onchange = () => {
|
|
|
+ cities.innerText = ''
|
|
|
+ for (city of data[countries.value]){
|
|
|
+ const optionCity = document.createElement('option')
|
|
|
+ optionCity.innerText = optionCity.value = city
|
|
|
+ cities.append(optionCity)
|
|
|
|
|
|
- }
|
|
|
- })
|
|
|
- })
|
|
|
-} */
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
|