From b2bc0651ecf69a0d1c2bd4776237076a02511b30 Mon Sep 17 00:00:00 2001 From: OkunElya Date: Sat, 3 Jan 2026 13:40:15 +1000 Subject: [PATCH] js lec 1 added --- lectures/lec5/p1/task1.js | 2 ++ lectures/lec5/p1/task2.js | 6 +++++ lectures/lec5/p1/task3.js | 8 ++++++ lectures/lec5/p1/task4.js | 1 + lectures/lec5/p1/task5.js | 10 +++++++ lectures/lec5/p1/task6.js | 3 +++ lectures/lec5/p1/task7.js | 3 +++ lectures/lec5/p1/task8.js | 3 +++ lectures/lec5/p2/task1.js | 4 +++ lectures/lec5/p2/task2.js | 3 +++ lectures/lec5/p2/task3.js | 8 ++++++ lectures/lec5/p2/task4.js | 8 ++++++ lectures/lec5/p3/task1.js | 10 +++++++ lectures/lec5/p3/task2.js | 17 ++++++++++++ lectures/lec5/p3/task3.js | 15 +++++++++++ lectures/lec5/p3/task4.js | 11 ++++++++ lectures/lecture3.txt | 57 --------------------------------------- lectures/readme.md | 39 ++++++++++++++++++++++++++- 18 files changed, 150 insertions(+), 58 deletions(-) create mode 100644 lectures/lec5/p1/task1.js create mode 100644 lectures/lec5/p1/task2.js create mode 100644 lectures/lec5/p1/task3.js create mode 100644 lectures/lec5/p1/task4.js create mode 100644 lectures/lec5/p1/task5.js create mode 100644 lectures/lec5/p1/task6.js create mode 100644 lectures/lec5/p1/task7.js create mode 100644 lectures/lec5/p1/task8.js create mode 100644 lectures/lec5/p2/task1.js create mode 100644 lectures/lec5/p2/task2.js create mode 100644 lectures/lec5/p2/task3.js create mode 100644 lectures/lec5/p2/task4.js create mode 100644 lectures/lec5/p3/task1.js create mode 100644 lectures/lec5/p3/task2.js create mode 100644 lectures/lec5/p3/task3.js create mode 100644 lectures/lec5/p3/task4.js delete mode 100644 lectures/lecture3.txt diff --git a/lectures/lec5/p1/task1.js b/lectures/lec5/p1/task1.js new file mode 100644 index 0000000..3dc599d --- /dev/null +++ b/lectures/lec5/p1/task1.js @@ -0,0 +1,2 @@ +alert("Hello, world!"); +document.write("Hello, world!"); \ No newline at end of file diff --git a/lectures/lec5/p1/task2.js b/lectures/lec5/p1/task2.js new file mode 100644 index 0000000..e8b1cbf --- /dev/null +++ b/lectures/lec5/p1/task2.js @@ -0,0 +1,6 @@ +let _name = "Алина"; +let email = "alina@test.ru"; + +let message = `Доброго времени суток, ${_name}! Мы отправили Вам приглашение на почту ${email}.`; + +document.write(`

${message}

`); \ No newline at end of file diff --git a/lectures/lec5/p1/task3.js b/lectures/lec5/p1/task3.js new file mode 100644 index 0000000..4e67330 --- /dev/null +++ b/lectures/lec5/p1/task3.js @@ -0,0 +1,8 @@ +let p = prompt("Введите значение переменной p:"); + +if (isNaN(parseFloat(p)) || !isFinite(Number(p))) { + alert("Ошибка: введено не число."); +} else { + p = Number(p) + 1; + alert(`Увеличенное значение переменной p: ${p}`); +} \ No newline at end of file diff --git a/lectures/lec5/p1/task4.js b/lectures/lec5/p1/task4.js new file mode 100644 index 0000000..cc7f699 --- /dev/null +++ b/lectures/lec5/p1/task4.js @@ -0,0 +1 @@ +let result = n > 0 ? 1 / n : n < 0 ? 1 / n ** 2 : 0; \ No newline at end of file diff --git a/lectures/lec5/p1/task5.js b/lectures/lec5/p1/task5.js new file mode 100644 index 0000000..5ef3716 --- /dev/null +++ b/lectures/lec5/p1/task5.js @@ -0,0 +1,10 @@ +let n = 81; +let i = 1; + +let out = ""; + +document.write(out); \ No newline at end of file diff --git a/lectures/lec5/p1/task6.js b/lectures/lec5/p1/task6.js new file mode 100644 index 0000000..25da7ac --- /dev/null +++ b/lectures/lec5/p1/task6.js @@ -0,0 +1,3 @@ +function sum() { + return arguments.reduce((total, num) => total + num, 0); +} diff --git a/lectures/lec5/p1/task7.js b/lectures/lec5/p1/task7.js new file mode 100644 index 0000000..dc049df --- /dev/null +++ b/lectures/lec5/p1/task7.js @@ -0,0 +1,3 @@ +sum = function(...args) { + return args.filter(num => num % 2 !== 0).reduce((acc, num) => acc + num, 0); +} \ No newline at end of file diff --git a/lectures/lec5/p1/task8.js b/lectures/lec5/p1/task8.js new file mode 100644 index 0000000..79fcdad --- /dev/null +++ b/lectures/lec5/p1/task8.js @@ -0,0 +1,3 @@ +sum = (...args) => { + return args.filter(num => num % 2 !== 0).reduce((acc, num) => acc + num, 0); +} \ No newline at end of file diff --git a/lectures/lec5/p2/task1.js b/lectures/lec5/p2/task1.js new file mode 100644 index 0000000..58fa6a2 --- /dev/null +++ b/lectures/lec5/p2/task1.js @@ -0,0 +1,4 @@ +function sumNumbers(str){ + str=str.split(" "); + return str.filter(substr => !isNaN(parseFloat(substr)) && isFinite(Number(substr))).reduce((acc,num) => acc+num,0); +} \ No newline at end of file diff --git a/lectures/lec5/p2/task2.js b/lectures/lec5/p2/task2.js new file mode 100644 index 0000000..3e81292 --- /dev/null +++ b/lectures/lec5/p2/task2.js @@ -0,0 +1,3 @@ +function extractText(html){ + return html.split("

").filter(substr => substr.includes("

")).map(substr = substr.split("

")[0]); +} \ No newline at end of file diff --git a/lectures/lec5/p2/task3.js b/lectures/lec5/p2/task3.js new file mode 100644 index 0000000..879e166 --- /dev/null +++ b/lectures/lec5/p2/task3.js @@ -0,0 +1,8 @@ +let arr = [12, 17, 12, 67, 23, 67, 8, 8, 9, 12, 8]; + +let newArr = arr.filter(function (item, index) { + return arr.indexOf(item) === index; +}); + +alert(newArr); +//12,17,67,23,8,9 \ No newline at end of file diff --git a/lectures/lec5/p2/task4.js b/lectures/lec5/p2/task4.js new file mode 100644 index 0000000..396b4b6 --- /dev/null +++ b/lectures/lec5/p2/task4.js @@ -0,0 +1,8 @@ +function sortNumbers(str){ + str=str.split(" "); + return str.filter(substr => !isNaN(parseFloat(substr)) && isFinite(Number(substr))).map(Number).sort((a,b) => {return Number(a)-Number(b)}); +} + +alert(sortNumbers(" 12 234 67 aboba 123 123 83 27 6")) + + diff --git a/lectures/lec5/p3/task1.js b/lectures/lec5/p3/task1.js new file mode 100644 index 0000000..c9060e5 --- /dev/null +++ b/lectures/lec5/p3/task1.js @@ -0,0 +1,10 @@ +let items = { + 'ручка': 20, + 'альбом': "a16", + 'тетрадь': 10 +}; + +let entries = Object.entries(items); +items=Object.fromEntries(entries.filter(entry =>!isNaN(parseFloat(entry[1]) && isFinite(Number(entry[1]))))) + +console.log(items); \ No newline at end of file diff --git a/lectures/lec5/p3/task2.js b/lectures/lec5/p3/task2.js new file mode 100644 index 0000000..d767ecc --- /dev/null +++ b/lectures/lec5/p3/task2.js @@ -0,0 +1,17 @@ + +function updateObject(oldObject, newObject) { + const [newKey, newValue] = Object.entries(newObject)[0]; + if (newKey in oldObject) { + oldObject[newKey] += newValue; + } else { + oldObject[newKey] = newValue; + } + return oldObject; +} + + +const oldObject = { 1: 10, 2: 20, 3: 30 }; +const newObject = { 2: 15 }; + +const updatedObject = updateObject(oldObject, newObject); +console.log(updatedObject); \ No newline at end of file diff --git a/lectures/lec5/p3/task3.js b/lectures/lec5/p3/task3.js new file mode 100644 index 0000000..192812e --- /dev/null +++ b/lectures/lec5/p3/task3.js @@ -0,0 +1,15 @@ +let objGoods = { + "ручка": [100, 50.60], + "карандаш": [120, 30.00], + "тетрадь": [200, 10.50] +}; + +outArr = []; +Object.entries(objGoods).forEach((entry) => { + let name = entry[0]; + entry[1].forEach(price => { + outArr.push({ "name": name, amount: price }) + }) +}); + +console.log(outArr); \ No newline at end of file diff --git a/lectures/lec5/p3/task4.js b/lectures/lec5/p3/task4.js new file mode 100644 index 0000000..55a9bc5 --- /dev/null +++ b/lectures/lec5/p3/task4.js @@ -0,0 +1,11 @@ +let items = { + 'ручка': 20, + 'альбом': 16, + 'тетрадь': 10 +}; + +let entries = Object.entries(items); +entries.sort((a,b) => Number(a[1])-Number(b[1])); +items=Object.fromEntries(entries) + +console.log(items); \ No newline at end of file diff --git a/lectures/lecture3.txt b/lectures/lecture3.txt deleted file mode 100644 index 83488dc..0000000 --- a/lectures/lecture3.txt +++ /dev/null @@ -1,57 +0,0 @@ - - - - -- var tag = 'h' -- var i = 1 - -#{tag+i} Уровень #{i} -- i++ -#{tag+i} Уровень #{i} -- i++ -#{tag+i} Уровень #{i} -- i++ -#{tag+i} Уровень #{i} - - - - -- var products ={"Товар":"Цена","ручка":30.5, "карандаш":50, "альбом":156, "тетрадь":21.5, "ластик":10.2} -table - each name,price in products - tr - td #{name} - td #{price} - - - -table - - for(var i=0;i<10;i++) - tr - - for(var j=0;j<10;j++) - - if((i + j) % 2 == 0) - td.white - - else - td.black - - - -mixin createList(listType, items, tag) - - var dispListType = "ul" - - if (listType == "ol") - - dispListType = "ol" - - #{dispListType}.list - each item in items - li - #{tag} #{item} - -// Вызов миксина -+createList('ul', ['Python', 'JavaScript', 'Java'], 'strong') - - -size=1% -section - box-shadow: size size (2*size) rgba(0,0,0,0.5) - padding:size*2 - margin:size*4 \ No newline at end of file diff --git a/lectures/readme.md b/lectures/readme.md index 96f53b6..185e075 100644 --- a/lectures/readme.md +++ b/lectures/readme.md @@ -67,7 +67,7 @@ id > class >tag 2. применение разных дисплеев 3. задача на align и чекпоинты -## 3 Препроцессоры +## 4 Препроцессоры ### p1 - Методологии вёрстки Лекция в основном про БЭМ (блок__элемент--модификатор), про принцип называния блоков по смыслу того что они делают. Кроме этого обозреваются другие методолгии (SMACSS\ECSS) @@ -94,9 +94,46 @@ id > class >tag Упомянуто несолкьо препроцессоров, фокус на stylus. в целом содержание лекции видно в задачах хотя в заданиях не затрагивался момент с возвращением значениев из миксинов, но всё равно инетересно +так-же оказалось что пробелы при написании операторов вычислений обязательны, это меня удивило конечно задачи: 1. переменные 2. вложенность 3. опять вложенность и на осознание принципов компиляции и частичных ссылок 4. миксины и вложенность 5. миксины и выисление + +## 5 JavaScript + +### p1 - операторы языка +Введение в основы JavaScript, синтаксис языка, базовые операторы и конструкции. Рассматриваются способы вывода информации (alert, document.write), работа с переменными и типами данных, шаблонные строки, условные операторы, циклы и функции. Особое внимание уделяется тернарному оператору, различным способам объявления функций (function declaration, function expression, arrow functions) и работе с аргументами функций. + +задачи: +1. вывод с помощью alert и document.write +2. работа с переменными и шаблонными строками +3. условные операторы и проверка чисел +4. тернарный оператор +5. циклы for и создание HTML-элементов +6. объявление функций и работа с arguments +7. function expression +8. arrow functions + +### p2 - структуры данных +Изучение работы с массивами и строками в JavaScript. filter, map, reduce, sort, работа со строками +остальные затронутые темы видны из названия задач + + +задачи: +1. извлечение и сумма чисел из строки +2. извлечение текста из HTML-тегов +3. на понимание работы оператора filter +4. фильтрация, преобразование и сортировка чисел из строки + +### p3 - объекты +Работа с объектами в JavaScript, их создание, модификация и обработка, перебор свойств объектов, фильтрация и сортировка данных в объектах. +остальные затронутые темы видны из названия задач + +задачи: +1. фильтрация свойств объекта по типу значений +2. обновление объекта с добавлением или увеличением значений +3. unford вложенныз свойств +4. сортировка объекта по значениям свойств