Здравсвуйте, уважаемые друзья! Вы только начинаете изучать JS, но не хвататет практики? Уже пытались учить JS и даже достигли определенных результатов, но внезапно застопорились в своем развитии? Вы пришли по нужому адресу!
На этом сайте я попытаюсь выложить для вас простые и понятние практические уроки, которые помогут лучше понять, что и для чего существует в обширном мире JS, где применяется и, главное, куда двигаться дальше.
В добрый путь!
Я не буду давать вам тонны теоретической информации. Уверена, это ни к чему. Только краткие выдержки, располагающиеся рядом со значком книги. Очень часто информация будет подаваться "своими словами". Чтобы прочесть официальные определения, ищите значок информации... ну и google в помощь!
Более подробную информацию всегда можно прочитать по ссылке, рядом со значком информации
Значок мозговых извилин означает, что на эту информацию нужно обратить внимание. Так обозначаются интересности и полезности.
Значок карандаша - это заметки. То, что желательно занести в свою шпаргалку, чтобы иметь под рукой для дальнейших уроков.
Первое и самое элементарное, что должен уметь каждый - это получение элементов с DOM.
DOM - Document Object Model (это то, как JS видит наш html документ с разметкой)
Каждый HTML-тег является объектом. Вложенные теги являются его «детьми», а сам тег - родителем. Также существуют теги - соседи.
Для того, чтобы разобраться, что и как работает, необходимо вспомнить основы html
1) Повторить у себя на компе все то, что было в уроке
2) Набросать другой html документ и получить из него элементы не подсматривая в шпаргалку.
Почему именно работа с input? На самом деле чаще всего именно из них приходится получать информацию, сохранять ее, а потом использовать. Разберемся, как это сделать?
Для начала создадим некую страницу, на которой будет происхоть взаимодействие с пользователем:
При этом:
- label - обеспечивает срабатывание клика не только на само окошко, но и на текст около него;
- type="checkbox" - определяет какой именно input мы используем;
- id - поможет нам обратиться к каждому input через JS (Урок 1);
- onchange="checkbox()" - устаревший способ отслеживания события. Дословно, мы написали: при изменении состояния input (onchange) запустить функцию с именем checkbox().
- id="result" - нужен для того, чтобы выводить результат выбора пользователя. Для начала просто наличие или отсутвие выбора.
Я нарочно для первого примера привожу устаревший способ отслеживания события (но все еще работающий!), так как по моему мнению он более простой и понятный. Поехали дальше?
Более подробную информацию про if else можно прочитать в учебнике JAVASCRIPT.RU
То есть у нас есть логическая конструкция:
if (условие) { действие}
else {действие}
Но есть более простая и компактная запись:
(условие) ? (действие, если true) : (действие, если false)
1) Повторить у себя на компе все то, что было в уроке.
2) Набросать другой html документ и повторить урок, не подсматривая в шпаргалки.
3) Вывод результата сделать с помощью alert.
На прошлом уроке мы разобрались с самым простым случаем работы с input. Но на самом деле и самих input много всяких видов, да и работа с ними лишь в получении значения не заканчивается. Посмотрим, как ограничить выбор пользователя одним вариантом?
Результат:
Более подробную информацию про слушателя события можно прочитать в учебнике JAVASCRIPT.RU
А что если у нас выпадающий список и выбор нужно сделать из его вариантов?
В начале хочу обратить ваше внимание: selectedIndex - показывает порядковый номер выбранного элемента списка option. При чем значение -1 означает, что ни один из элементов не выбран.
Более подробную информацию про selectedIndex можно прочитать в учебнике MDN web docs
1) Повторить у себя на компе все то, что было в уроке.
2) Набросать другой html документ и повторить урок, не подсматривая в шпаргалки.
3) Вывод результата сделать с помощью alert.
Довольно часто происходит следующее: пользователь вводит через запятую какие-то слова (например, какие магазины он посещал в прошлом месяце), а нам нужно дальше эту информацию правильно сохранить и как-то использовать.
Результат:
В следующих уроках мы рассмотрим, что делать, если пользователь не поставил запятые, если поставил слишком много пробелов между словами и т.д. Пока же для простоты допустим только то, что он неадекватно использовал клавишу SHIFT :)
P.S.: В наш input вы можете ввести свои варианты. Пока там показаны значения по умолчанию. HTML имеет вид:
В данном уроке мы будем работать со строками.Более подробную информацию можно прочитать в учебнике JAVASCRIPT.RU
Обратной задачей к удалению пробелов, есть их добавление. С этой задачей отлично стправятся padStart() и padEnd()
1) Повторить у себя на компе все то, что было в уроке.
2) Набросать другой html документ и повторить урок, не подсматривая в шпаргалки.
При необходимости мы можем вывести из JS всякие интересные значки используя ASCII или unicode
Это могут быть смайлики, специальные символы, стрелочки и т. д. Их код легко найти в интернете. Например, можно использовать сайт Еmojipedia
Допустим, у нас есть задача: посчитать дневной бюджет пользователя. То есть, нам нужно спросить:
1. Сколько он заработал за месяц;
2. Какие были расходы;
3. Сколько он на них потратил.
А потом отняв расходы от доходов, разделить полученную сумму на 30.
Проблемы с этой задачей начинаются тогда, когда пользователь начинает вместо цифр вводить буквы и наоборот. Как от этого защититься?
Какой ваш месячный заработок?
Ваш месячный заработок:
Основная статья расходов:
Сколько вы на нее тратите?
Основные расходы:
Потраченные деньги:
Дополнительная статья расходов:
Сколько вы на нее тратите?
Дополнительные расходы:
Потраченные деньги:
Ваш месячный бюджет составляет:
Ваш дневной бюджет составляет:
В данном уроке мы будем работать с функциями. Более подробную информацию можно прочитать в учебнике JAVASCRIPT.RU
Теперь организуем проверку вводимых значений на их тип.
Более подробную информацию про преобразование типов можно прочитать в учебнике JAVASCRIPT.RU
Осталось посчитать дневной и месячный бюджет.
1) Повторить у себя на компе все то, что было в уроке.
2) Набросать другой html документ и повторить урок, не подсматривая в шпаргалки.
3) Попробуйте оптимизировать код. Например: приводить тип к numder в ф-ции проверки на корректность ввода...