Created
May 19, 2026 13:19
-
-
Save etherealHero/8a79348102601d6a53dba684e13157ee to your computer and use it in GitHub Desktop.
js course
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var userName = "Perry"; | |
| var userName = "Jerry"; // эта переменная перетрет верхнюю | |
| let age = 10; | |
| // let age = true; // нельзя повторно объявить переменную через let или const если она была объявлена раннее | |
| let secondUser = { | |
| name: userName, | |
| age: age, | |
| isAdmin: true, | |
| skills: ["js", "docker"], | |
| } | |
| const usersList = [ | |
| { | |
| name: "Robin", | |
| age: 25, | |
| isAdmin: false, | |
| skills: ["bash", "js", "pwsh"], | |
| }, | |
| secondUser, | |
| { | |
| name: "Ted", | |
| age: 27, | |
| isAdmin: true, | |
| skills: ["bash", "pwsh"], | |
| } | |
| ]; | |
| // | |
| // Задача: проверить имеет ли последний пользователь в списке навык js | |
| // | |
| const userListLength = usersList.length; // у массива есть свойство как и у объектов. Свойство length вернет число равное кол-ву элементов в массиве | |
| const lastUser = usersList[ | |
| userListLength - 1 // доступ к элементу массива через индекс. Индекс идет с нуля. Длина массива на единицу больше крайнего индекса массива | |
| ]; | |
| const lastUserSkillsLength = lastUser.skills.length; | |
| const lastUserName = lastUser.name; | |
| let hasJSSkill = false; | |
| let nonJSSkills; | |
| for (var i = 0; i < lastUserSkillsLength; i = i + 1) { | |
| let currentSkill = lastUser.skills[i]; | |
| let indexToNum = i + 1; // приводим индекс к человеческому виду - порядковому номеру | |
| let logMessage = indexToNum + "-й навык " + lastUserName + " является " + currentSkill; | |
| console.log(logMessage); | |
| if (currentSkill == "js") { | |
| hasJSSkill = true; | |
| } else { | |
| if (typeof nonJSSkills == "string") { | |
| nonJSSkills = nonJSSkills + ", " + currentSkill; | |
| } else { | |
| nonJSSkills = currentSkill; // произойдет один раз когда переменная nonJSSkills еще не инициализирована (пустая) | |
| } | |
| } | |
| console.debug("значение переменной nonJSSkills: " + nonJSSkills); // console.debug тоже самое что и console.log. Тип это для отладки написали | |
| } | |
| console.debug(usersList); | |
| // | |
| // Задача: проверить имеет ли первый и второй пользователи в списке навык js | |
| // | |
| // можно написать такую же пелену как и сверху, либо описать функцию и затем вызвать ее два раза | |
| /** | |
| * @param {{ name: string, age: number, skills: string[] }} user | |
| * @param {string} skill | |
| */ | |
| function isUserHasSkill(user, skill) { | |
| console.debug("\ncheck if " + user.name + " has '" + skill + "' skill"); | |
| for (var i = 0; i < user.skills.length; i = i + 1) { | |
| console.log("check skill " + user.skills[i]); | |
| if (user.skills[i] == skill) { | |
| console.log("user " + user.name + " has '" + skill + "' skill. Exit function.") | |
| // return прерывает дальнейшее выполнение функции (т.е. переходит как будто в конец функции) | |
| // после return можно написать что нужно вернуть (это не обязательно, но текущая функция будет возвращать булево значение) | |
| return true; | |
| } | |
| } | |
| console.log("user skills not contains " + skill); | |
| return false; | |
| } // конец функции | |
| const isFirstUserHasShellSkill = isUserHasSkill(usersList[0], "shell"); | |
| const isSecondUserHasJSSkill = isUserHasSkill(usersList[1], "js"); | |
| console.log("isFirstUserHasShellSkill: " + isFirstUserHasShellSkill); | |
| console.log("isSecondUserHasJSSkill: " + isSecondUserHasJSSkill); | |
| // запускать через node path/to/thisScript.js | |
| /* | |
| Плейлисты (в порядке обучения) | |
| 1. html - https://www.youtube.com/playlist?list=PLuY6eeDuleIMjV7Kff8yf8RA-XwjXVGgl | |
| 2. css - https://www.youtube.com/playlist?list=PLuY6eeDuleIOn8NTkZVsUn9jDCkdoJH9Z | |
| 3. верстка после html и css (можно практиковаться без знаний js) | |
| - https://www.youtube.com/playlist?list=PLuY6eeDuleIPKCe3dSJfqkGXS-Ebky02v | |
| - https://www.youtube.com/playlist?list=PLoq3Accf02PVdUqjqPdWMG4HbEZXlhICW | |
| 4. js - https://www.youtube.com/playlist?list=PLuY6eeDuleINjS4_G7KuYThU_T4uzpAuG | |
| */ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment