Основы JavaScript
Как подключить JavaScript на страницу
Диалоговые окна
Переменные
Мы также можем изменить значение переменной столько раз, сколько захотим:
Объявление переменных
Константы
Правила именования переменных
Типы данных
Число
Строка
Конкатенация строк - это новомодное программистское слово, которое означает «объединить». Объединение строк в JavaScript
Методы со строками
Булевый (логический) тип
Значение «null»
Значение «undefined»
Объекты и символы
Оператор typeof - возвращает тип аргумента
Преобразование типов данных
Сравнение динамической и статической типизации
Пример статической типизации на C#
Пример динамической типизации JavaScript
Базовые операторы, математика
Термины: «унарный», «бинарный», «операнд»
Математические операторы
Приоритет операторов
Префиксный и постфиксный тип в JavaScript
Операторы сравнения
В JavaScript операторы сравнения они записываются так:
Результат сравнения имеет логический тип
Сравнение строк
Сравнение разных типов
Строгое сравнение (===)
Не равно (!=) и строгое не равно (!==)
Задачи
Условное ветвление: if, '?'
Синтаксис
Какой будет ответ true или false?
if…else — несколько условий
Условный оператор „?“ – Тернарный оператор
Логические операторы
Логические операторы
&& (И)
|| (ИЛИ)
Логическое ! (НЕ) - NOT в JS
Операторы нулевого слияния
Конструкция "switch"
Пример работы
Пример без break:
Задачи
Массивы
Объявление массива
Элементы могут быть разных типов:
Элементы массива нумеруются, начиная с нуля. Мы можем получить элемент, указав его номер в квадратных скобках:
Общее число элементов массива содержится в его свойстве length:
Методы pop/push, shift/unshift
Методы push и unshift могут добавлять сразу несколько элементов:
Методы split() и join()
Многомерные массивы
Не сравнивайте массивы при помощи ==
Циклы while и for
Цикл - это повторяющаяся последовательность действий.
Как понять
Цикл while
For - Управляющая конструкция, которая создаёт цикл.
Операторы break и continue
Есть ещё один оператор continue, который позволяет пропустить текущую итерацию цикла, не прерывая его полностью, и перейти к
Цикл do-while - В цикле сначала выполняется код цикла, а потом происходит проверка условия в инструкции while. И пока это
Задачи
Методы перебора массива
Цикл for для перебора массива
Цикл for...of  - (неявное использование итератора)
forEach - используется для перебора массива.
Filter - используется для фильтрации массива через функцию. Он создаёт новый массив, в который войдут только те элементы arr,
Map - используется для трансформации массива. Он создаёт новый массив, который будет состоять из результатов вызова
Reduce - используется для последовательной обработки каждого элемента массива с сохранением промежуточного результата.
Find - Метод массива find() вернёт первый найденный в массиве элемент, который подходит под условие в переданной
FindIndex - возвращает индекс первого найденного в массиве элемента, который подходит под условие переданной функции. Если же
Задачи
Функции это блок из различных команд. С ней легко создавать порядок в коде программы, избавляясь от ненужных повторений и
Синтаксис
Стрелочные функции
Работа с функциями
Параметры
Значения по умолчанию
Неизвестное значение параметра
Область видимости - это часть программы, в которой мы можем обратиться к переменной, функции или объекту. Этой частью может
Замыкание - это способность функции запоминать переменные, которые были определены внутри родительской функции, даже после
Рекурсия - это повторение какого-либо объекта или процесса внутри самого этого объекта или процесса.
Пример с циклом
Тот же пример с рекурсией
Задачи
Выражения - это код, который после выполнения возвращает какое-либо значение. Например, 5 + 3 вернёт 8, а Math.random() —
Инструкции
JavaScript все инструкции можно поделить на несколько категорий:
Объекты
Как создать объект
Литералы и свойства
Для обращения к свойствам используется запись «через точку»:
Изменение значений
Добавление значений
Удаление свойства
Имена свойств - Имена свойств (иногда их называют ключи, или поля) могут быть либо строками, либо символами. Если использовать
Сравнение объектов
Сравнение будет возвращать true, только если мы сравниваем переменные, указывающие на один и тот же объект:
Использование цикла for…in
Задачи
3.48M
Категория: ПрограммированиеПрограммирование

Основы

1. Основы JavaScript

2. Как подключить JavaScript на страницу

Код на языке JavaScript называют скриптом. Его сохраняют в отдельный файл
с расширением js, а чтобы запустить, подключают этот файл на страницу. В
HTML для добавления JavaScript есть специальный тег:
Подключают скрипт обычно в самом конце страницы, перед
закрывающим тегом </body>.

3. Диалоговые окна

Метод alert() – простое окно с сообщением и кнопкой Ок
Метод confirm() – окно с кнопками OK (возвращает true) и
Cancel (false)
Метод prompt() – диалоговое окно для ввода данных

4. Переменные

– это «именованное хранилище» для данных. Мы можем использовать переменные
для хранения товаров, посетителей и других данных.
Для создания переменной в JavaScript используйте ключевое слово let.
Приведённая ниже инструкция создаёт (другими словами, объявляет) переменную
с именем «message»:

5. Мы также можем изменить значение переменной столько раз, сколько захотим:

6. Объявление переменных

let
const
var
Переменные let и const появились в версии EcmaScript 2015 года (ES6),
и сейчас используются намного чаще чем var.

7. Константы

Чтобы объявить константную, то есть, неизменяемую переменную, используйте
const вместо let:
ERROR

8. Правила именования переменных

Имя переменной должно содержать только буквы,
цифры или символы $ и _.
Первый символ не должен быть цифрой.
Существует список зарезервированных слов, которые
нельзя использовать в качестве имён переменных,
потому что они используются самим языком.
Например: let, class, return и function зарезервированы.

9. Типы данных

10. Число

Числовой тип данных (number) представляет как целочисленные значения, так и
числа с плавающей точкой.
Существует множество операций для чисел, например, умножение *, деление /,
сложение +, вычитание - и так далее.
Кроме обычных чисел, существуют так называемые «специальные числовые
значения», которые относятся к этому типу данных: Infinity, -Infinity и NaN.
Infinity представляет собой математическую бесконечность ∞. Это особое значение,
которое больше любого числа.
Мы можем получить его в результате деления на ноль:

11.

NaN означает вычислительную ошибку. Это результат неправильной или
неопределённой математической операции, например:
Значение NaN «прилипчиво». Любая математическая операция с NaN
возвращает NaN:

12. Строка

В JavaScript существует три типа кавычек.
Двойные кавычки: "Привет".
Одинарные кавычки: 'Привет'.
Обратные кавычки: `Привет`.
Двойные или одинарные кавычки являются «простыми», между ними нет разницы в JavaScript.
Обратные же кавычки имеют расширенную функциональность. Они позволяют нам встраивать
выражения в строку, заключая их в ${…}. Например:

13. Конкатенация строк - это новомодное программистское слово, которое означает «объединить». Объединение строк в JavaScript

использует оператор плюс (+), тот же, который мы используем для сложения
чисел, но в этом контексте он делает кое-что другое. Попробуем пример в
нашей консоли.

14. Методы со строками

Length – длина строки
toLowerCase() – изменение на нижний регистр символов
toUpperCase() – изменение на верхний регистр символов
includes() - принимает аргументом строку, которую нужно найти.
Возвращает true, если строка нашлась и false — если нет.

15.

startsWith() - принимает аргументом строку, которую нужно найти.
Возвращает true, если текущая строка начинается с искомой и false —
если нет.

16.

endsWith() - принимает аргументом строку, которую нужно найти. Возвращает
true, если текущая строка заканчивается искомой и false — если нет.
indexOf() – принимает аргументом строку, которую нужно найти. Возвращает индекс
символа, с которого начинается искомая строка. Если искомая строка не найдена, то
возвращает -1.

17.

18. Булевый (логический) тип

Булевый тип (boolean) может принимать только два значения: true (истина) и
false (ложь).
Такой тип, как правило, используется для хранения значений да/нет: true значит
«да, правильно», а false значит «нет, не правильно».

19. Значение «null»

Специальное значение null не относится ни к одному из типов, описанных
выше.
Оно формирует отдельный тип, который содержит только значение null:
В JavaScript null не является «ссылкой на несуществующий объект» или
«нулевым указателем», как в некоторых других языках.
Это просто специальное значение, которое представляет собой «ничего»,
«пусто» или «значение неизвестно».
В приведённом выше коде указано, что значение переменной age неизвестно.

20. Значение «undefined»

Специальное значение undefined также формирует тип из самого себя так же,
как и null.
Оно означает, что «значение не было присвоено».
Если переменная объявлена, но ей не присвоено никакого значения, то её
значением будет undefined:

21. Объекты и символы

Тип object (объект) – особенный.
Все остальные типы называются «примитивными», потому что их значениями могут
быть только простые значения (будь то строка, или число, или что-то ещё). В объектах
же хранят коллекции данных или более сложные структуры.
Объекты занимают важное место в языке и требуют особого внимания..
Тип symbol (символ) используется для создания уникальных идентификаторов в
объектах. Мы упоминаем здесь о нём для полноты картины, изучим этот тип после
объектов.

22. Оператор typeof - возвращает тип аргумента

23. Преобразование типов данных

Строковое преобразование происходит, когда требуется представление чего-либо в
виде строки.
Например, alert(value) преобразует значение к строке.
Также мы можем использовать функцию String(value), чтобы преобразовать
значение к строке:

24.

Численное преобразование происходит в математических функциях и
выражениях.
Например, когда операция деления / применяется не к числу:
Мы можем использовать функцию Number(value), чтобы явно
преобразовать value к числу:

25.

Логическое преобразование самое простое.
Происходит в логических операциях (позже мы познакомимся с условными
проверками и подобными конструкциями), но также может быть выполнено
явно с помощью функции Boolean(value).
Правило преобразования:
Значения, которые интуитивно «пустые», вроде 0, пустой строки, null,
undefined и NaN, становятся false.
Все остальные значения становятся true.

26. Сравнение динамической и статической типизации

Динамическая типизация и статическая типизация – два подхода к определению
типов данных в программировании. Статическая типизация требует, чтобы типы
данных переменных были известны заранее, до выполнения программы. Это
означает, что каждая переменная связана с определенным типом данных, и эта
связь проверяется на этапе компиляции. В отличие от этого, динамическая
типизация позволяет переменной изменять свой тип данных в процессе
выполнения программы, что добавляет гибкости, но также увеличивает
вероятность возникновения ошибок в рантайме.

27. Пример статической типизации на C#

Если в переменную с типом данных string – строка, мы
передадим число то в языках программирования
статической типизации выведет ошибку

28. Пример динамической типизации JavaScript

29. Базовые операторы, математика

30. Термины: «унарный», «бинарный», «операнд»

Операнд – то, к чему применяется оператор. Например, в умножении 5 * 2
есть два операнда: левый операнд равен 5, а правый операнд равен 2. Иногда
их называют «аргументами» вместо «операндов».
Унарным называется оператор, который применяется к одному операнду.
Например, оператор унарный минус "-" меняет знак числа на
противоположный:
Бинарным называется оператор, который применяется к двум операндам. Тот
же минус существует и в бинарной форме:

31. Математические операторы

Поддерживаются следующие математические операторы:
Сложение +,
Вычитание -,
Умножение *,
Деление /,
Взятие остатка от деления %,
Возведение в степень **.

32. Приоритет операторов

33. Префиксный и постфиксный тип в JavaScript

В случае alert(a++) переменная сначала выведется, а потом увеличится на единицу, а
в случае alert(++a) переменная сначала увеличится на единицу, а потом выведется.
Префиксный тип
Постфиксный тип

34. Операторы сравнения

35. В JavaScript операторы сравнения они записываются так:

Больше/меньше: a > b, a < b.
Больше/меньше или равно: a >= b, a <= b.
Равно: a == b. Обратите внимание, для сравнения используется двойной
знак равенства ==. Один знак равенства a = b означал бы присваивание.
Не равно. В математике обозначается символом ≠, но в JavaScript
записывается как a != b.

36. Результат сравнения имеет логический тип

Все операторы сравнения возвращают значение логического типа:
true – означает «да», «верно», «истина».
false – означает «нет», «неверно», «ложь».
Результат сравнения можно присвоить переменной, как и
любое значение:

37. Сравнение строк

Алгоритм сравнения двух строк довольно прост:
Сначала сравниваются первые символы строк.
Если первый символ первой строки больше (меньше), чем первый символ
второй, то первая строка больше (меньше) второй. Сравнение завершено.
Если первые символы равны, то таким же образом сравниваются уже
вторые символы строк.
Сравнение продолжается, пока не закончится одна из строк.
Если обе строки заканчиваются одновременно, то они равны. Иначе,
большей считается более длинная строка.
Все строчные буквы больше заглавных букв:
a >A => true

38. Сравнение разных типов

При сравнении значений разных типов JavaScript приводит каждое из них к числу.
Логическое значение true становится 1, а false – 0.

39. Строгое сравнение (===)

Разница между строгим сравнением (===) и с обычным равенством (==) в том,
что обычное равно сравнивает только значение, а тройное равно (строгое)
сравнивает еще и тип данных.
При использовании операторов сравнения с разными
типами данных, JS приводит их к числу и затем
выполняет сравнение.

40. Не равно (!=) и строгое не равно (!==)

Данные операторы выполняют противоположную проверку
от двух предыдущих. Что если нам нужно просто
убедиться, что наша переменная не равна одному какомуто значению, тогда нам не нужно будет перечислять все
доступные варианты.

41. Задачи

1.
Создайте страницу, которая спрашивает имя у пользователя и выводит его.
2.
Расчет площади прямоугольника: Пользователь вводит длину и ширину
прямоугольника. Рассчитайте и выведите площадь этого прямоугольника.
3.
Конвертация температуры: Пользователь вводит температуру по Цельсию.
Переведите и выведите эту температуру по шкале Фаренгейта.Формула: F =
(C * 9/5) + 32
4.
Подсчет количества букв в слове: Пользователь вводит слово. Подсчитайте
и выведите количество букв в этом слове.
5.
Расчет среднего арифметического: Пользователь вводит три числа.
Рассчитайте и выведите их среднее арифметическое.

42. Условное ветвление: if, '?'

Дынный оператор относиться к условным операторам и помогает
определить соответствует ли какое-то выражение нужному
условию, а дальше в зависимости от этого выполнить тот или иной
код.

43.

44.

45. Синтаксис

Базовый синтаксис оператора if else следующий:
Если условие (переменная или выражение) в скобках после if вернет истину (true),
значит будет выполнен код, который находиться в фигурных скобках {...}
Также есть продолжение else (с англ. переводится как еще). Оно не является
обязательным, но мы можем его использовать, если нам нужно что-то выполнить
если первое условие не сработало:

46.

47. Какой будет ответ true или false?

48. if…else — несколько условий

Иногда нужно проверить несколько вариантов условия. Для этого используется
блок else if.
В приведённом выше коде JavaScript сначала проверит year < 2015. Если это
неверно, он переходит к следующему условию year > 2015. Если оно тоже ложно,
тогда сработает последний alert.
Блоков else if может быть и больше. Присутствие блока else не является
обязательным.

49. Условный оператор „?“ – Тернарный оператор

Так называемый «условный» оператор «вопросительный знак» позволяет
нам написать код с условием более коротким и простым способом.
Оператор представлен знаком вопроса ?. Его также называют
«тернарный», так как этот оператор, единственный в своём роде, имеет
три аргумента.

50. Логические операторы

51. Логические операторы

|| (ИЛИ)
&& (И)
! (НЕ)
?? (Оператор нулевого слияния)

52. && (И)

&& (И)
Логическое И записывается двумя амперсандами && и возвращает true, если
оба выражения (слева и справа) вернут true. Т.е. и значение слева, и
значение справа должны быть true, тогда оператор вернет true.
Оператор И в JavaScript выполняет сравнение слева направо,
преобразовывает выражение (операнд) в логическое значение и вернет
false как только одно из значений будет false

53. || (ИЛИ)

Логический оператор ИЛИ будет возвращать true, если хоть одно из значений
(слева или справа) будет истинно, т.е. будет true:
Если оператор && (И) ищет первое ложное значение (false), то логический
оператор || (ИЛИ) ищет первое верное значение (true)

54. Логическое ! (НЕ) - NOT в JS

Оператор НЕ работает следующим образом:
Приводит выражение к булевому значению (true/false)
Затем делает отрицание, т.е. на true возвращает false, а на false
возвращает true.

55. Операторы нулевого слияния

Оператор нулевого слияния представляет собой два вопросительных знака ??.
Это логический оператор, возвращающий значение правого операнда, если
значение левого операнда содержит null или undefined, в противном случае
возвращается значение левого операнда.
Результат выражения a ?? b будет следующим:
если a определено, то a,
если a не определено, то b.
Иначе говоря, оператор ?? возвращает первый аргумент, если он не
null/undefined, иначе второй.

56. Конструкция "switch"

Конструкция "switch"
Данный оператор позволяет проверить множество условий и в зависимости
от условия, выполнить то или иное действие. В некоторых ситуациях это
может быть удобнее, чем использовать if-else

57.

Синтаксис
Конструкция switch имеет один или более блок case и необязательный блок
default.
Выглядит она так:

58. Пример работы

Если break нет, то выполнение пойдёт ниже по следующим case,
при этом остальные проверки игнорируются.

59. Пример без break:

60. Задачи

1.
Определение знака числа: Пользователь вводит число. Напишите
программу, которая определяет, является ли число положительным,
отрицательным или равным нулю.
2.
Проверка возраста для голосования: Пользователь вводит свой возраст.
Проверьте, может ли он голосовать (возраст должен быть 18 лет или
больше).
3.
Определение наибольшего из трех чисел: Пользователь вводит три
числа. Определите и выведите наибольшее из них.
4.
Определение дня недели: Пользователь вводит число от 1 до 7.
Используя switch, определите и выведите соответствующий день недели
(1 - Понедельник, 2 - Вторник и т.д.).

61. Массивы

это структура, в которой можно хранить коллекции элементов — чисел,
строк, других массивов и так далее. Элементы нумеруются и хранятся в том
порядке, в котором их поместили в массив. Элементов может быть сколько
угодно, они могут быть какими угодно.
Массивы очень похожи на нумерованные списки.

62. Объявление массива

Существует два варианта синтаксиса для создания пустого массива:
1
2
Практически всегда используется
второй вариант синтаксиса. В
скобках мы можем указать
начальные значения элементов:

63. Элементы могут быть разных типов:

64. Элементы массива нумеруются, начиная с нуля. Мы можем получить элемент, указав его номер в квадратных скобках:

0
1
2

65.

66. Общее число элементов массива содержится в его свойстве length:

С помощью length можно получить последний элемент массива

67. Методы pop/push, shift/unshift

Pop - Удаляет последний элемент из массива и возвращает его:

68.

Push - Добавляет элемент в конец массива
Вызов fruits.push(...) равнозначен fruits[fruits.length] = ....
Но

69.

Shift - Удаляет из массива первый элемент и возвращает его
Unshift - Добавляет элемент в начало массива

70. Методы push и unshift могут добавлять сразу несколько элементов:

71. Методы split() и join()

Метод split разбивает строку на массив по заданному разделителю
Метод join делает в точности противоположное split. Он создаёт строку из элементов
массива

72. Многомерные массивы

Массивы могут содержать элементы, которые тоже являются массивами. Это
можно использовать для создания многомерных массивов, например, для
хранения матриц:

73. Не сравнивайте массивы при помощи ==

В JavaScript, в отличие от некоторых других языков программирования,
массивы не следует сравнивать при помощи оператора ==.
У этого оператора нет специального подхода к массивам, он работает с
ними, как и с любыми другими объектами.

74.

75. Циклы while и for

76. Цикл - это повторяющаяся последовательность действий.

Цикл состоит из условия и тела цикла.
Перед запуском цикла проверяется условие. Если условие истинное, то
выполняется блок кода, который называется телом цикла. Затем этот шаг
повторяется. Так будет продолжаться, пока условие не станет ложным.
Каждое выполнение тела цикла называется итерацией.
JavaScript предоставляет несколько способов создания цикла. Самые
распространённые из них — while и for (инициализация; условие;
завершающая операция) {}.

77.

78. Как понять

В программировании есть много задач, когда нужно выполнять заранее неизвестное
количество однотипных шагов:
напечатать все сообщения из списка;
обозначить на карте присланные пользователем координаты;
уточнять значения при вычислении функций (например, считать квадратный
корень).
До выполнения программы невозможно знать, сколько будет сообщений или сколько
раз нужно уточнить значение для точного расчёта квадратного корня. Такие задачи
решают циклы.
Циклы выполняют блок кода до тех пор, пока выполняется условие. С помощью условия
можно управлять тем, сколько раз выполнять код, который называется телом цикла.
Например, выполнять код до тех пор, пока все сообщения не будут напечатаны.
Цикл завершается, когда условие перестаёт выполняться.

79. Цикл while

Код из тела цикла выполняется, пока условие condition истинно.
Например, цикл ниже выводит i, пока i < 3:
Одно выполнение тела цикла по-научному называется итерация. Цикл в
примере выше совершает три итерации.
Если бы строка i++ отсутствовала в примере выше, то цикл бы
повторялся (в теории) вечно

80. For - Управляющая конструкция, которая создаёт цикл.

1. Инициализация — в этой части задаётся начальное значение счётчика цикла.
2. Условие — тут задаётся условие по которому выполняется цикл. Если условие
ложно, работа цикла прекращается и тело цикла не выполняется.
3. Завершающая операция — в этой части задаётся выражение, которое будет
исполнено после выполнения тела цикла. Обычно здесь содержится выражение
изменения счётчика.
4. Тело цикла — это блок операций, которые будут выполнены в случае, если
условие истинно.

81. Операторы break и continue

Также, если это необходимо, можно прервать выполнение цикла оператором
break.
1
2
3
4
break

82. Есть ещё один оператор continue, который позволяет пропустить текущую итерацию цикла, не прерывая его полностью, и перейти к

следующей.
1
2
3
4
continue
6
7
8
9

83. Цикл do-while - В цикле сначала выполняется код цикла, а потом происходит проверка условия в инструкции while. И пока это

условие истинно, цикл повторяется. Например:
Здесь код цикла сработает 5 раз, пока i не станет равным 5. При этом цикл do
гарантирует хотя бы однократное выполнение действий, даже если условие в
инструкции while не будет истинно.

84. Задачи

1.
Вывод чисел от 1 до 5: Напишите программу, которая выводит на экран числа от 1
до 5.
2.
Сумма чисел от 1 до 10: Напишите программу, которая вычисляет сумму всех
чисел от 1 до 10.
3.
Таблица умножения на 3:Напишите программу, которая выводит на экран таблицу
умножения для числа 3 (от 1 до 10).
4.
Дан массив с числами, найдите сумму чётных чисел массива.

85. Методы перебора массива

For
For…of
forEach
Fillter
Map
Find
Reduce
findIndexof

86. Цикл for для перебора массива

87. Цикл for...of  - (неявное использование итератора)

Цикл for...of - (неявное использование итератора)

88. forEach - используется для перебора массива.

forEach - используется для перебора
Он
для каждого элемента массива вызывает функцию callback.
массива.
Этой функции он передаёт три параметра callback(item, i, arr):
item – очередной элемент массива.
i – его номер.
arr – массив, который перебирается.
Метод forEach ничего не возвращает, его используют только для перебора, как
более «элегантный» вариант, чем обычный цикл for.

89. Filter - используется для фильтрации массива через функцию. Он создаёт новый массив, в который войдут только те элементы arr,

для которых вызов callback(item, i, arr) возвратит true.

90. Map - используется для трансформации массива. Он создаёт новый массив, который будет состоять из результатов вызова

callback(item, i, arr) для каждого элемента arr.

91. Reduce - используется для последовательной обработки каждого элемента массива с сохранением промежуточного результата.

Он применяет функцию callback по очереди к каждому элементу массива слева
направо, сохраняя при этом промежуточный результат.
Аргументы функции callback(previousValue, currentItem, index, arr):
• previousValue – последний результат вызова функции, он же «промежуточный
результат».
• currentItem – текущий элемент массива, элементы перебираются по очереди
слева-направо.
• index – номер текущего элемента.
• arr – обрабатываемый массив.

92.

93. Find - Метод массива find() вернёт первый найденный в массиве элемент, который подходит под условие в переданной

колбэкфункции. Если в массиве не найдётся ни одного подходящего
элемента, то вернётся значение undefined.

94. FindIndex - возвращает индекс первого найденного в массиве элемента, который подходит под условие переданной функции. Если же

ни одного подходящего элемента не найдётся,
то метод вернёт -1.

95. Задачи

1.
Подсчет положительных и отрицательных чисел: Дан массив чисел. Напишите
программу, которая подсчитывает количество положительных и отрицательных
чисел в этом массиве.
2.
Фильтрация четных чисел: Дан массив чисел. Напишите программу, которая
создает новый массив, содержащий только четные числа из исходного массива.
3.
Преобразование строк в верхний регистр: Дан массив строк. Напишите
программу, которая преобразует все строки в этом массиве в верхний регистр.
4.
Подсчет количества слов в предложениях: Дан массив предложений. Напишите
программу, которая подсчитывает количество слов в каждом предложении.

96. Функции это блок из различных команд. С ней легко создавать порядок в коде программы, избавляясь от ненужных повторений и

запутанных частей

97. Синтаксис

Первый способ — просто объявить функцию в коде (по-английски
Function Declaration):
Ключевое слово для
объявление функции
Область видимости
функции writeHello
Вызов функции
Название функции
Параметр

98.

Второй — создать функциональное выражение (Function Expression). Это
похоже на первый способ, но здесь функция становится значением переменной
Переменная,
которое хранит
значение функции
Ключевое слово для
объявление функции
Параметр
Область видимости
функции writeHello
Вызов функции

99.

Способы написать функцию из примеров выше не одно и то же (хотя и
выглядят почти одинаково). Основное отличие в том, что если мы
использовали Function Declaration, то JavaScript перенесёт функции вверх
текущей области видимости. Это называется «поднятие» (или hoisting).
Правильно заработает
Выдаст ошибку

100. Стрелочные функции

Стрелочная функция записывается намного короче, чем обычная. В самой
простой записи ключевое слово function и фигурные скобки не требуются.
В многострочных стрелочных функциях кода больше, поэтому они
имеют фигурные скобки, но в остальном не отличаются:

101. Работа с функциями

В JavaScript есть два типа функций по признаку имени. В примере ниже
функция называется именованной, потому что у неё есть имя.
Противоположность именованным функциям — анонимные. У таких имени
нет:

102. Параметры

При вызове функции можно передать данные, они будут использованы кодом
внутри.
Например, функция showMessage принимает два параметра под названиями user и
message, а потом соединяет их для целого сообщения.

103. Значения по умолчанию

В функциях можно задавать значения по умолчанию

104. Неизвестное значение параметра

Бывают ситуации когда неизвестно какое количество параметров
передадутся в функции, тогда используется оператор …a

105. Область видимости - это часть программы, в которой мы можем обратиться к переменной, функции или объекту. Этой частью может

быть функция, блок или вся программа в
целом — то есть мы всегда находимся как минимум в одной области видимости.
Глобальная область видимости — это самая внешняя коробка из всех. Когда мы «просто объявляем
переменную», вне функций, вне модулей, то эта переменная попадает в глобальную область видимости, то есть
она будет доступна везде.
Блочная область видимости ограничена программным блоком, обозначенным при помощи { и }. Простейший
пример такой области — это выражение внутри скобок:
Функциональная область видимости — это область
видимости в пределах тела функции. Можно сказать,
что она ограничена { и } функции.

106.

Глобальная область
видимости
Функциональная
область видимости

107. Замыкание - это способность функции запоминать переменные, которые были определены внутри родительской функции, даже после

того,
как родительская функция была выполнена.

108. Рекурсия - это повторение какого-либо объекта или процесса внутри самого этого объекта или процесса.

109. Пример с циклом

Выводит 0 так как итерация
days = 0 и выводит сначала 0
Выводит до 5, проверяет

110. Тот же пример с рекурсией

111. Задачи

1.
Калькулятор: Напишите функцию calculator(), которая принимает два числа и
операцию (+, -, *, /) в качестве аргументов. Функция должна возвращать результат
выполнения выбранной операции над этими двумя числами.
2.
Приветствие с замыканием: Напишите функцию creategreeter(), которая
принимает имя человека в качестве аргумента и возвращает другую функцию функцию приветствия. Функция приветствия должна выводить на экран сообщение
вида "Привет, [имя]!«
3.
Напишите функцию print_fio(name, surname, patronymic), которая принимает три
параметра:
name – имя человека;
surname – фамилия человека;
patronymic – отчество человека;
а затем выводит на печать ФИО человека.

112. Выражения - это код, который после выполнения возвращает какое-либо значение. Например, 5 + 3 вернёт 8, а Math.random() —

случайное число.
Пример:

113.

114. Инструкции

- это синтаксические конструкции и команды, которые выполняют действия.

115. JavaScript все инструкции можно поделить на несколько категорий:

управление потоком выполнения (if и else, switch, throw и так далее);
итерации (for, while и так далее);
объявление значений (var, let, const);
функции (function, return и так далее);
прочие (debugger, import, export).

116. Объекты

- это набор свойств. Каждое свойство состоит из названия и
значения. Название может быть строкой или символом, а значение
может быть любым.

117. Как создать объект

Обычно используют вариант с фигурными скобками {...}. Такое
объявление называют литералом объекта или литеральной нотацией.

118. Литералы и свойства

При использовании литерального синтаксиса {...} мы сразу можем поместить
в объект несколько свойств в виде пар «ключ: значение»:
В объекте user сейчас находятся два
свойства:
Первое свойство с именем "name" и
значением "John".
Второе свойство с именем "age" и
значением 30.

119. Для обращения к свойствам используется запись «через точку»:

120. Изменение значений

121. Добавление значений

122. Удаление свойства

123. Имена свойств - Имена свойств (иногда их называют ключи, или поля) могут быть либо строками, либо символами. Если использовать

в качестве ключа другой тип данных, то он будет
приведён к строке с помощью вызова метода toString():
Если ключ содержит
пробел, то
обращаться к нему
возможно только
через синтаксис
квадратных скобок:

124. Сравнение объектов

Объекты — ссылочный тип данных. Сравнению по ссылке посвящена отдельная
статья.
При сравнении двух объектов JavaScript сравнивает не значения свойств этих
объектов, а адреса в памяти, по которым эти объекты хранятся. Поэтому любое
сравнение двух объектов будет возвращать false, даже если они выглядят
одинаково:

125. Сравнение будет возвращать true, только если мы сравниваем переменные, указывающие на один и тот же объект:

126. Использование цикла for…in

Синтаксис:

127. Задачи

1.
Создание объекта "Человек": Создайте объект person с ключами name, age и
city. Присвойте им соответствующие значения.
2.
Доступ к свойствам объекта: Создайте объект car с ключами make, model и
year. Выведите на консоль значение свойства model.
3.
Добавление и изменение свойств объекта: Создайте объект student с
ключами name и grade. Добавьте новое свойство email с нужным значением.
Измените значение свойства grade.
4.
Перебор свойств объекта: Создайте объект book с ключами title, author и
pages. Напишите цикл, который выводит на консоль все ключи и значения
этого объекта.
5.
Вложенные объекты: Создайте объект employee с ключами name, job и
address. Значение address должно быть еще одним объектом с ключами street,
city и country. Выведите на консоль значение city из адреса сотрудника.
English     Русский Правила