Перейти к содержимому

Верно ли что js является регистрозависимым

  • автор:

Строгий режим — «use strict»

На протяжении долгого времени JavaScript развивался без проблем с обратной совместимостью. Новые функции добавлялись в язык, в то время как старая функциональность не менялась.

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

Так было до 2009 года, когда появился ECMAScript 5 (ES5). Он добавил новые возможности в язык и изменил некоторые из существующих. Чтобы устаревший код работал, как и раньше, по умолчанию подобные изменения не применяются. Поэтому нам нужно явно их активировать с помощью специальной директивы: «use strict» .

«use strict»

Директива выглядит как строка: «use strict» или ‘use strict’ . Когда она находится в начале скрипта, весь сценарий работает в «современном» режиме.

"use strict"; // этот код работает в современном режиме . 

Совсем скоро мы начнём изучать функции (способ группировки команд), поэтому заранее отметим, что в начале большинства видов функций можно поставить «use strict» . Это позволяет включить строгий режим только в конкретной функции. Но обычно люди используют его для всего файла.

Убедитесь, что «use strict» находится в начале

Проверьте, что «use strict» находится в первой исполняемой строке скрипта, иначе строгий режим может не включиться.

Здесь строгий режим не включён:

alert("some code"); // "use strict" ниже игнорируется - он должен быть в первой строке "use strict"; // строгий режим не активирован

Над «use strict» могут быть записаны только комментарии.

Нет никакого способа отменить use strict

Нет директивы типа «no use strict» , которая возвращала бы движок к старому поведению.

Как только мы входим в строгий режим, отменить это невозможно.

Консоль браузера

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

Иногда, когда use strict имеет значение, вы можете получить неправильные результаты.

Итак, как можно включить use strict в консоли?

Можно использовать Shift + Enter для ввода нескольких строк и написать в верхней строке use strict :

'use strict'; // . ваш код.

В большинстве браузеров, включая Chrome и Firefox, это работает.

Если этого не происходит, например, в старом браузере, есть некрасивый, но надежный способ обеспечить use strict . Поместите его в следующую обёртку:

(function() < 'use strict'; // . ваш код. >)()

Всегда ли нужно использовать «use strict»?

Вопрос кажется риторическим, но это не так.

Кто-то посоветует начинать каждый скрипт с «use strict» … Но есть способ покруче.

Современный JavaScript поддерживает «классы» и «модули» — продвинутые структуры языка (и мы, конечно, до них доберёмся), которые автоматически включают строгий режим. Поэтому в них нет нужды добавлять директиву «use strict» .

Подытожим: пока очень желательно добавлять «use strict»; в начале ваших скриптов. Позже, когда весь ваш код будет состоять из классов и модулей, директиву можно будет опускать.

Пока мы узнали о use strict только в общих чертах.

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

Все примеры в этом учебнике подразумевают исполнение в строгом режиме, за исключением случаев (очень редких), когда оговорено иное.

JavaScript — Урок 1. Основные понятия

Программы (сценарии) на этом языке обрабатываются встроенным в браузер интерпретатором. К сожалению, не все сценарии выполняются корректно во всех браузерах, поэтому тестируйте свои javascript-программы в различных браузерах.

Язык JavaScript регистрозависимый, т.е. заглавные и прописные буквы алфавита считаются разными символами.

Прежде, чем приступить к написанию сценариев, необходимо ознакомиться с основными понятиями, такими как литералы, переменные и выражения.

  • Литералы целого типа — целые числа в представлении:
    • десятичном, например: 15, +5, -174.
    • шестнадцатеричном, например: 0х25, 0хff. Шестнадцатеричные числа включают цифры 0 — 9 и буквы a, b, c, d, e, f. Записываются они с символами 0х перед числом.
    • восьмеричном, например: 011, 0543. Восьмеричные числа включают только цифры 0 — 7.

    Переменные используются для хранения данных. Переменные определяются с помощью оператора var, после которого следует имя переменной. Имя переменной должно начинаться с буквы латинского алфавита или с символа подчеркивания. Само имя может включать буквы латинского алфавита, цифры и знак подчеркивания.

    Например:
    var test
    var _test
    var _my_test1

    Каждой переменной можно присвоить значение либо при ее инициализации (объявлении), либо в коде самой программы. Оператор присваивания обозначается знаком равно (=), но знак равенства здесь не имеет своего прямого значения. В данном случае он лишь указывает на то, что данной переменной присвоили значение.

    Например:
    var a=15
    var b=23.15
    var c=’выполнено’
    var s=true

    Каждая переменная имеет тип, определяемый значением переменной. Так в нашем примере: переменные a и b имеют тип number, переменная c имеет тип string, а переменная s — логический тип.

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

    В выражении a*b, a и b называются операндами, а * — знак операции. В javascript определены следующие операции:

    операция название
    + сложение
    вычитание
    * умножение
    / деление
    % остаток от деления целых чисел
    ++ увеличение значения операнда на единицу
    уменьшение значения операнда на единицу

    Операторы в выражении вычисляются слева направо в соответствии с приоритетами арифметических операций. Изменить порядок вычисления можно с помощью скобок.

    Для каждого из арифметических операторов есть форма, в которой одновременно с заданной операцией выполняется присваивание:

    оператор эквивалентный оператор присваивания
    X+=Y X=X+Y
    X-=Y X=X-Y
    X*=Y X=X*Y
    X/=Y X=X/Y
    X%=Y X=X%Y

    В данном случае сначала вычисляется правый операнд, а затем полученное значение присваивается левому операнду.

    Для того, чтобы можно было сравнивать два значения в javascript определены операции сравнения, результатом которых может быть только логическое значение: true или false:

    операция название
    = больше или равно
    > больше

    В javascript определены логические операции:

    && — логическое И (AND),

    || — логическое ИЛИ (OR),

    ! — логическое НЕ (NOT).

    Результаты воздействия логических операторов на различные комбинации значений операндов показаны в таблице:

    A B A&&B A||B !A
    true true true true false
    true false false true false
    false true false true true
    false false false false true

    Проще говоря, значение выражения A&&B истинно, если истинны оба оператора, и ложно в противном случае. Значение выражения A||B истинно, если значение хотя бы одного операнда истинно, и ложно в противном случае. Если значение операнда А истинно, то !A — ложно и наоборот.

    Для строковых литералов определена операция конкатенация строк, т.е. их объединение. Обозначается эта операция знаком плюс (+). Результатом выполнения операции является также строка. Пример:

    var st1=»Привет»;
    var st2=»Вася»;
    var st3=st1+st2;

    В результате в переменной st3 будет значение «Привет Вася».

    В конце приведем таблицу приоритетов операций в порядке их убывания. Приоритет операций определяет порядок, в котором выполняются операции в выражении.

    название обозначение
    инкремент ++
    декремент
    отрицание !
    унарный минус
    умножение *
    деление, остаток от деления /,%
    сложение +
    вычитание
    сравнение , =
    равенство ==
    не равенство !=
    логическое И &&
    логическое ИЛИ ||
    присваивание =, +=, -=, *=, /=, %=, !=

    Первый урок подошел к концу, он получился теоретическим, но без теории невозможно перейти к практике.

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

    Современные веб-технологии. JavaScript

    Краткое введение в Javascript

    JavaScript был создан в 1995 году в компании Netscape в качестве
    языка сценариев в браузере Netscape Navigator 2.
    Первоначально язык назывался LiveScript, но на волне популярности в
    тот момент другого языка Java LiveScript был переименован в
    JavaScript.
    2

    3. JavaScript



    JavaScript

    Первая программа на JavaScript




    3

    4. JavaScript

    Еще один способ подключения кода JavaScript на веб-страницу
    представляет вынесение кода во внешние файлы и их подключение с
    помощью тега
    файл myscript.js
    var date = new Date(); // получаем текущую дату
    var time = date.getHours(); // получаем текущее время в часах
    if(time < 13) // сравниваем время с число 13
    alert(‘Доброе утро!’); // если время меньше 13
    else
    alert(‘Добрый вечер!’); // если время равно 13 и больше
    4

    5. JavaScript



    JavaScript

    Первая программа на JavaScript




    5

    6. JavaScript

    В отличие от определения кода JavaScript вынесение его во внешние
    файлы имеет ряд преимуществ:
    Можно повторно использовать один и тот же код на нескольких вебстраницах
    Внешние файлы JavaScript бразуер может кэшировать, за счет этого
    при следующем обращении к странице браузер снижает нагрузка на
    сервер, а браузеру надо загрузить меньший объем информации
    Код веб-страницы становится «чище». Он содержит только htmlразметку, а код поведения хранится во внешних файлах. В итоге
    можно отделить работу по созданию кода html-страницы от написания
    кода JavaScript
    6

    7. JavaScript

    8. JavaScript

    9. JavaScript

    10. JavaScript



    JavaScript

    Первая программа на JavaScript




    10

    11. JavaScript



    JavaScript

    Первая программа на JavaScript




    11

    12. JavaScript. Переменные и константы

    Для хранения данных в программе используются переменные. Для
    создания переменных применяются ключевые слова var и let.
    var myIncome;
    // другой вариант
    let myIncome2;
    Каждая переменная имеет имя. Имя представляет собой произвольный
    набор алфавитно-цифровых символов, знака подчеркивания (_) или знака
    доллара ($), причем названия не должны начинаться с цифровых
    символов.
    12

    13. JavaScript. Переменные и константы

    Список зарезервированных слов в JavaScript:
    abstract, boolean, break, byte, case, catch, char, class, const, continue,
    debugger, default, delete, do, double, else, enum, export, extends, false, final,
    finally, float, for, function, goto, if, implements, import, in, instanceof, int,
    inteface, long, native, new, null, package, private, protected, public, return,
    short, static, super, switch, synchronized, this, throw, throws, transient, true,
    try, typeof, var, volatile, void, while, with
    13

    14. JavaScript. Переменные и константы

    JavaScript является регистрозависимым языком, то есть в следующем
    коде объявлены две разные переменные:
    var myIncome;
    var MyIncome;
    С помощью ключевого слова const можно определить константу,
    которая, как и переменная, хранит значение, однако это значение не
    может быть изменено.
    const rate = 10;
    14

    15. JavaScript. Типы данных

    В JavaScript имеется пять примитивных типов данных:
    String: представляет строку
    Number: представляет числовое значение
    Boolean: представляет логическое значение true или false
    undefined: указывает, что значение не установлено
    null: указывает на неопределенное значение
    Все данные, которые не попадают под вышеперечисленные пять типов,
    относятся к типу object
    15

    16. JavaScript. Числовые данные

    Числа в JavaScript могут иметь две формы:
    Целые числа, например, 35. Можно использовать как положительные,
    так и отрицательные числа.
    Дробные числа (числа с плавающей точкой), например, 3.5575. Опять же
    можно использовать как положительные, так и отрицательные числа.
    var x = 45;
    var y = 23.897;
    В качестве разделителя между целой и дробной частями, как и в других
    языках программирования, используется точка.
    16

    17. JavaScript. Строки

    Тип string представляет строки.
    Можно использовать как двойные, так и одинарные кавычки: «Привет
    мир» и ‘Привет мир’. Единственно ограничение: тип закрывающей
    кавычки должен быть тот же, что и тип открывающей, то есть либо обе
    двойные, либо обе одинарные.
    Если внутри строки встречаются кавычки, то их нужно экранировать
    слешем.
    var companyName = «Бюро \»Рога и копыта\»»;
    Также можно внутри стоки использовать другой тип кавычек:
    var companyName1 = «Бюро ‘Рога и копыта'»;
    var companyName2 = ‘Бюро «Рога и копыта»‘;
    17

    18. JavaScript. Тип Boolean

    Тип Boolean представляет булевые или логические значения true и false
    (то есть да или нет):
    var isAlive = true;
    var isDead = false;
    18

    19. JavaScript. null и undefined

    Когда мы только определяем переменную без присвоения ей начального
    значения, она представляет тип undefined:
    var isAlive;
    console.log(isAlive); // выведет undefined
    Присвоение значение null означает, что переменная имеет некоторое
    неопределенное значение (не число, не строка, не логическое значение),
    но все-таки имеет значение (undefined означает, что переменная не имеет
    значения):
    var isAlive;
    console.log(isAlive); // undefined
    isAlive = null;
    console.log(isAlive); // null
    isAlive = undefined; // снова установим тип undefined
    console.log(isAlive); // undefined
    19

    20. JavaScript. Тип object

    Тип object представляет сложный объект.
    Простейшее определение объекта представляют фигурные скобки:
    var user = <>;
    Объект может иметь различные свойства и методы:
    var user = ;
    console.log(user.name);
    В данном случае объект называется user, и он имеет два свойства: name и
    age.
    20

    21. JavaScript. Слабая типизация

    JavaScript является языком со слабой типизацией. Это значит, что
    переменные могут динамически менять тип. Например:
    var xNumber; // тип undefined
    console.log(xNumber);
    xNumber = 45; // тип number
    console.log(xNumber);
    xNumber = «45»; // тип string
    console.log(xNumber);
    21

    22. JavaScript. Слабая типизация

    var xNumber = 45; // тип number
    var yNumber = xNumber + 5;
    console.log(yNumber); // 50
    xNumber = «45»; // тип string
    var zNumber = xNumber + 5
    console.log(zNumber); // 455
    22

    23. JavaScript. Оператор typeof

    С помощью оператора typeof можно получить тип переменной:
    var name = «Tom»;
    console.log(typeof name); // string
    var income = 45.8;
    console.log(typeof income); // number
    var isEnabled = true;
    console.log(typeof isEnabled); // boolean
    var undefVariable;
    console.log(typeof undefVariable); // undefined
    23

    24. JavaScript. Операции с переменными

    Сложение:
    var x = 10;
    var y = x + 50;
    Вычитание:
    var x = 100;
    var y = x — 50;
    Умножение:
    var x = 4;
    var y = 5;
    var z = x * y;
    24

    25. JavaScript. Операции с переменными

    Деление:
    var x = 40;
    var y = 5;
    var z = x / y;
    Деление по модулю (оператор %) возвращает остаток от деления:
    var x = 40;
    var y = 7;
    var z = x % y;
    console.log(z); // 5
    25

    26. JavaScript. Операции с переменными

    Инкремент:
    var x = 5;
    x++; // x = 6
    Оператор инкремента ++ увеличивает переменную на единицу.
    Существует префиксный инкремент, который сначала увеличивает
    переменную на единицу, а затем возвращает ее значение.
    И есть постфиксный инкремент, который сначала возвращает значение
    переменной, а затем увеличивает его на единицу.
    26

    27. JavaScript. Операции с переменными

    // префиксный инкремент
    var x = 5;
    var z = ++x;
    console.log(x); // 6
    console.log(z); // 6
    // постфиксный инкремент
    var a = 5;
    var b = a++;
    console.log(a); // 6
    console.log(b); // 5
    27

    28. JavaScript. Операции с переменными

    Декремент уменьшает значение переменной на единицу. Также есть
    префиксный и постфиксный декремент:
    // префиксный декремент
    var x = 5;
    var z = —x;
    console.log(x); // 4
    console.log(z); // 4
    // постфиксный декремент
    var a = 5;
    var b = a—;
    console.log(a); // 4
    console.log(b); // 5
    28

    29. JavaScript. Операции с переменными

    Все операции выполняются слева направо и различаются по
    приоритетам: сначала операции инкремента и декремента, затем
    выполняются умножение и деление, а потом сложение и вычитание.
    Чтобы изменить стандартный ход выполнения операций, часть
    выражений можно поместить в скобки:
    var x = 10;
    var y = 5 + (6 — 2) * —x;
    console.log(y); //41
    29

    30. JavaScript. Операции с переменными

    Операции присваивания =
    Приравнивает переменной определенное значение: var x = 5;
    Сложение с последующим присвоением результата.
    var a = 23;
    a += 5; // аналогично a = a + 5
    console.log(a); // 28
    30

    31. JavaScript. Операции с переменными

    Вычитание с последующим присвоением результата.
    var a = 28;
    a -= 10; // аналогично a = a — 10
    console.log(a); // 18
    Умножение с последующим присвоением результата:
    var x = 20;
    x *= 2; // аналогично x = x * 2
    console.log(x); // 40
    31

    32. JavaScript. Операции с переменными

    Деление с последующим присвоением результата:
    var x = 40;
    x /= 4; // аналогично x = x / 4
    console.log(x); // 10
    Получение остатка от деления с последующим присвоением
    результата:
    var x = 10;
    x %= 3; // аналогично x = x % 3
    console.log(x); // 1, так как 10 — 3*3 = 1
    32

    33. JavaScript. Операции с переменными

    Операторы сравнения
    ==
    Оператор равенства сравнивает два значения, и если они равны,
    возвращает true, иначе возвращает false: x == 5
    ===
    Оператор тождественности также сравнивает два значения и их тип, и
    если они равны, возвращает true, иначе возвращает false: x === 5
    !=
    Сравнивает два значения, и если они не равны, возвращает true, иначе
    возвращает false: x != 5
    33

    34. JavaScript. Операции с переменными

    ==
    Сравнивает два значения и их типы, и если они не равны, возвращает
    true, иначе возвращает false: x !== 5
    >
    Сравнивает два значения, и если первое больше второго, то возвращает
    true, иначе возвращает false: x > 5
    Сравнивает два значения, и если первое меньше второго, то возвращает
    true, иначе возвращает false: x < 5
    >=
    Сравнивает два значения, и если первое больше или равно второму, то
    возвращает true, иначе возвращает false: x >= 5
    Сравнивает два значения, и если первое меньше или равно второму, то
    возвращает true, иначе возвращает false: x 34

    35. JavaScript. Операции с переменными

    Логические операции
    Логические операции применяются для объединения результатов двух
    операций сравнения. В JavaScript есть следующие логические операции:
    &&
    Возвращает true, если обе операции сравнения возвращают true, иначе
    возвращает false:
    var income = 100;
    var percent = 10;
    var result = income > 50 && percent < 12;
    console.log(result); //true
    35

    36. JavaScript. Операции с переменными

    ||
    Возвращает true, если хотя бы одна операция сравнения возвращают true,
    иначе возвращает false:
    var income = 100;
    var isDeposit = true;
    var result = income > 50 || isDeposit == true;
    console.log(result); //true
    36

    37. JavaScript. Операции с переменными

    Возвращает true, если операция сравнения возвращает false:
    var income = 100;
    var result1 = !(income > 50);
    console.log(result1); // false, так как income > 50 возвращает true
    var isDeposit = false;
    var result2 = !isDeposit;
    console.log(result2); // true
    37

    38. JavaScript. Операции с переменными

    Операции со строками
    Строки могут использовать оператор + для объединения.
    var name = «Том»;
    var surname = «Сойер»
    var fullname = name + » » + surname;
    console.log(fullname); //Том Сойер
    Если одно из выражений представляет строку, а другое — число, то число
    преобразуется к строке и выполняется операция объединения строк:
    var name = «Том»;
    var fullname = name + 256;
    console.log(fullname); //Том256
    38

    39. JavaScript. Преобразования данных

    Для преобразования строки в число применяется функция parseInt():
    var number1 = «46»;
    var number2 = «4»;
    var result = parseInt(number1) + parseInt(number2);
    console.log(result); // 50
    Для преобразования строк в дробные числа применяется функция
    parseFloat():
    var number1 = «46.07»;
    var number2 = «4.98»;
    var result = parseFloat(number1) + parseFloat(number2);
    console.log(result); //51.05
    39

    40. JavaScript. Преобразования данных

    Если методу не удастся выполнить преобразование, то он возвращает
    значение NaN (Not a Number), которое говорит о том, что строка не
    представляет число и не может быть преобразована.
    С помощью специальной функции isNaN() можно проверить,
    представляет ли строка число. Если строка не является числом, то
    функция возвращает true, если это число — то false:
    var num1 = «javascript»;
    var num2 = «22»;
    var result = isNaN(num1);
    console.log(result); // true — num1 не является числом
    result = isNaN(num2);
    console.log(result); // false — num2 — это число
    40

    41. JavaScript. Массивы

    Для работы с наборами данных предназначены массивы. Для создания
    массива применяется выражение new Array():
    var myArray = new Array();
    Существует также более короткий способ инициализации массива:
    var myArray = [];
    В данном случае создается пустой массив. Но можно также добавить в
    него начальные данные:
    var people = [«Tom», «Alice», «Sam»];
    console.log(people);
    41

    42. JavaScript. Массивы

    Для обращения к отдельным элементам массива используются индексы.
    Отсчет начинается с нуля, то есть первый элемент будет иметь индекс 0, а
    последний — 2:
    var people = [«Tom», «Alice», «Sam»];
    console.log(people[0]); // Tom
    var person3 = people[2]; // Sam
    console.log(person3); // Sam
    Если мы попробуем обратиться к элементу по индексу больше размера
    массива, то мы получим undefined:
    var people = [«Tom», «Alice», «Sam»];
    console.log(people[7]); // undefined
    42

    43. JavaScript. Массивы

    В отличие от других языков, как C# или Java, можно установить элемент,
    который изначально не установлен:
    var people = [«Tom», «Alice», «Sam»];
    console.log(people[7]); // undefined — в массиве только три элемента
    people[7] = «Bob»;
    console.log(people[7]); // Bob\
    Также стоит отметить, что в отличие от ряда языков программирования в
    JavaScript массивы не являются строго типизированными, один массив
    может хранить данные разных типов:
    var objects = [«Tom», 12, true, 3.14, false];
    console.log(objects);
    43

    44. JavaScript. Массивы

    spread-оператор
    spread-оператор . позволяет взять значения из массива по отдельности:
    let numbers = [1, 2, 3, 4];
    console.log(. numbers); // 1 2 3 4
    console.log(numbers);
    // [1, 2, 3, 4]
    spread-оператор указывается перед массивом. В результате выражение
    . numbers возвратит набор чисел, но это будет не массив, а именно
    отдельные значения.
    44

    45. JavaScript. Массивы

    Многомерные массивы
    Массивы могут быть одномерными и многомерными. Каждый элемент в
    многомерном массиве может представлять собой отдельный массив.
    Выше мы рассматривали одномерный массив, теперь создадим
    многомерный массив:
    var numbers1 = [0, 1, 2, 3, 4, 5 ]; // одномерный массив
    var numbers2 = [[0, 1, 2], [3, 4, 5] ]; // двумерный массив
    45

    46. JavaScript. Условные конструкции

    Выражение if
    Конструкция if проверяет некоторое условие и если это условие верно, то
    выполняет некоторые действия.
    Общая форма конструкции if:
    if(условие) действия;
    Например:
    var income = 100;
    if(income > 50) alert(«доход больше 50»);
    46

    47. JavaScript. Условные конструкции

    Если необходимо выполнить по условию набор инструкций, то они
    помещаются в блок из фигурных скобок:
    var income = 100;
    if(income > 50) var message = «доход больше 50»;
    alert(message);
    >
    47

    48. JavaScript. Условные конструкции

    В конструкции if также можно использовать блок else. Данный блок
    содержит инструкции, которые выполняются, если условие после if
    ложно, то есть равно false:
    var age = 17;
    if(age >= 18) alert(«Вы допущены к программе кредитования»);
    >
    else alert(«Вы не можете участвовать в программе, так как возраст меньше
    18″);
    >
    48

    49. JavaScript. Условные конструкции

    С помощью конструкции else if можно добавить альтернативное условие
    к блоку if:
    var income = 300;
    if(income < 200)alert("Доход ниже среднего");
    >
    else if(income >= 200 && income <= 400)alert("Средний доход");
    >
    else alert(«Доход выше среднего»);
    >
    49

    50. JavaScript. Условные конструкции

    В JavaScript любая переменная может применяться в условных
    выражениях, но не любая переменная представляет тип boolean.
    И в этой связи возникает вопрос, что возвратит та или иная переменная true или false? Много зависит от типа данных, который представляет
    переменная:
    undefined. Возвращает false
    null. Возвращает false
    Boolean. Если переменная равна false, то возвращается false.
    Соответствено если переменная равна true, то возвращается true
    Number. Возвращает false, если число равно 0 или NaN (Not a
    Number), в остальных случаях возвращается true
    String. Возвращает false, если переменная равна пустой строке, то есть
    ее длина равна 0, в остальных случаях возвращается true
    Object. Всегда возвращает true
    50

    51. JavaScript. Условные конструкции

    Конструкция switch..case является альтернативой использованию
    конструкции if..else if..else и также позволяет обработать сразу несколько
    условий:
    var income = 300;
    switch(income) case 100 :
    console.log(«Доход равен 100»);
    break;
    case 200 :
    console.log(«Доход равен 200»);
    break;
    case 300 :
    console.log(«Доход равен 300»);
    break;
    >
    51

    52. JavaScript. Условные конструкции

    Тернарная операция
    Тернарная операция состоит из трех операндов и имеет следующее
    определение:
    [первый операнд — условие] ? [второй операнд] : [третий операнд].
    В зависимости от условия тернарная операция возвращает второй или
    третий операнд: если условие равно true, то возвращается второй
    операнд; если условие равно false, то третий. Например:
    var a = 1;
    var b = 2;
    var result = a < b ? a + b : a - b;
    console.log(result); // 3
    Если значение переменной a меньше значения переменной b, то
    переменная result будет равняться a + b. Иначе значение result будет
    равняться a — b.
    52

    53. JavaScript. Циклы

    Циклы позволяют в зависимости от определенных условий выполнять
    некоторое действие множество раз. В JavaScript имеются следующие
    виды циклов:
    for
    for..in
    for..of
    while
    do..while
    53

    54. JavaScript. Циклы

    Цикл for
    Цикл for имеет следующее формальное определение:
    for ([инициализация счетчика]; [условие]; [изменение счетчика]) // действия
    >
    Например, используем цикл for для перебора элементов массива:
    var people = [«Tom», «Alice», «Bob», «Sam»];
    for(var i = 0; i >
    54

    55. JavaScript. Циклы

    for..in
    Цикл for..in предназначен для перебора массивов и объектов. Его
    формальное определение:
    for (индекс in массив) // действия
    >
    Например, переберем элементы массива:
    var people = [«Tom», «Alice», «Bob», «Sam»];
    for(var index in people) console.log(people[index]);
    >
    55

    56. JavaScript. Циклы

    Цикл for. of
    Цикл for. of похож на цикл for. in и предназначен для перебора
    коллекций, например, массивов:
    let users = [«Tom», «Bob», «Sam»];
    for(let val of users)
    console.log(val);
    56

    57. JavaScript. Циклы

    Цикл while
    Цикл while выполняется до тех пор, пока некоторое условие истинно. Его
    формальное определение:
    while(условие) // действия
    >
    Опять же выведем с помощью while элементы массива:
    var people = [«Tom», «Alice», «Bob», «Sam»];
    var index = 0;
    while(index < people.length)console.log(people[index]);
    index++;
    >
    57

    58. JavaScript. Циклы

    do..while
    В цикле do сначала выполняется код цикла, а потом происходит проверка
    условия в инструкции while. И пока это условие истинно, цикл
    повторяется. Например:
    var x = 1;
    do console.log(x * x);
    x++;
    >while(x < 10)
    58

    59. JavaScript. Циклы

    Операторы continue и break
    Иногда бывает необходимо выйти из цикла до его завершения. В этом
    случае мы можем воспользоваться оператором break:
    var array = [ 1, 2, 3, 4, 5, 12, 17, 6, 7 ];
    for (var i = 0; i < array.length; i++)
    if (array[i] > 10)
    break;
    document.write(array[i] + «
    «);
    >
    59

    60. JavaScript. Функции

    Функции представляют собой набор инструкций, выполняющих
    определенное действие или вычисляющих определенное значение.
    Синтаксис определения функции:
    function имя_функции([параметр [, . ]]) // Инструкции
    >
    60

    61. JavaScript. Функции

    Определение функции начинается с ключевого слова function, после
    которого следует имя функции.
    Наименование функции подчиняется тем же правилам, что и
    наименование переменной: оно может содержать только цифры, буквы,
    символы подчеркивания и доллара ($) и должно начинаться с буквы,
    символа подчеркивания или доллара.
    После имени функции в скобках идет перечисление параметров.
    Даже если параметров у функции нет, то просто идут пустые скобки.
    Затем в фигурных скобках идет тело функции, содержащее набор
    инструкций.
    61

    62. JavaScript. Функции

    Необязательно давать функциям определенное имя. Можно использовать
    анонимные функции:
    var display = function() < // определение функции
    document.write(«функция в JavaScript»);
    >
    display();
    Фактически мы определяем переменную display и присваиваем ей ссылку
    на функцию. А затем по имени переменной функция вызывается.
    62

    63. JavaScript. Функции

    Параметры функции
    Рассмотрим передачу параметров:
    function display(x) < // определение функции
    var z = x * x;
    document.write(x + » в квадрате равно » + z);
    >
    display(5); // вызов функции
    Функция display принимает один параметр — x. Поэтому при вызове
    функции мы можем передать для него значение, например, число 5, как в
    данном случае.
    63

    64. JavaScript. Функции

    Если функция принимает несколько параметров, то с помощью spreadоператора . мы можем передать набор значений для этих параметров из
    массива:
    function sum(a, b, c) let d = a + b + c;
    console.log(d);
    >
    sum(1, 2, 3);
    let nums = [4, 5, 6];
    sum(. nums);
    Во втором случае в функцию передается числа из массива nums. Но
    чтобы передавался не просто массив, как одно значение, а именно числа
    из этого массива, применяется spread-оператор (многоточие . ).
    64

    65. JavaScript. Функции

    Необязательные параметры
    Функция может принимать множество параметров, но при этом часть или
    все параметры могут быть необязательными. Если для параметров не
    передается значение, то по умолчанию они имеют значение «undefined».
    function display(x, y) if(y === undefined) y = 5;
    if(x === undefined) x = 8;
    let z = x * y;
    console.log(z);
    >
    display(); // 40
    display(6); // 30
    display(6, 4) // 24
    65

    66. JavaScript. Функции

    При необходимости можно получить все переданные параметры через
    глобально доступный массив arguments:
    function display() var z = 1;
    for(var i=0; i z *= arguments[i];
    console.log(z);
    >
    display(6); // 6
    display(6, 4) // 24
    display(6, 4, 5) // 120
    При этом даже не важно, что при определении функции мы не указали
    никаких параметров, мы все равно можем их передать и получить их
    значения через массив arguments.
    66

    67. JavaScript. Функции

    Неопределенное количество параметров
    С помощью spread-оператора можно указать, что с помощью параметра
    можно передать переменное количество значений:
    function display(season, . temps) console.log(season);
    for(index in temps) console.log(temps[index]);
    >
    >
    display(«Весна», -2, -3, 4, 2, 5);
    display(«Лето», 20, 23, 31);
    В данном случае второй параметр . temps указывает, что вместо него
    можно передать разное количество значений. В самой функции temps
    фактически представляет массив переданных значений, которые мы
    можем получить. При этом несмотря на это, при вызове функции в нее
    67
    передается не массив, а именно отдельные значения.

    68. JavaScript. Функции

    Результат функции
    Функция может возвращать результат. Для этого используется оператор
    return:
    var y = 5;
    var z = square(y);
    document.write(y + » в квадрате равно » + z);
    function square(x) return x * x;
    >
    После оператора return идет значение, которое надо возвратить из метода.
    В данном случае это квадрат числа х.
    68

    69. JavaScript. Область видимости переменных

    70. JavaScript. Область видимости переменных

    Сокрытие переменных
    Что если у нас есть две переменных — одна глобальная, а другая
    локальная, которые имеют одинаковое имя:
    var z = 89;
    function displaySquare() var z = 10;
    console.log(z); // 10
    >
    displaySquare(); // 10
    В этом случае в функции будет использоваться та переменная z, которая
    определена непосредственно в функции. То есть локальная переменная
    скроет глобальную.
    70

    71. JavaScript. Область видимости переменных

    Необъявленные переменные
    Если мы не используем ключевое слово при определении переменной в
    функции, то такая переменная будет глобальной. Например:
    function bar() foo = «25»;
    >
    bar();
    console.log(foo); // 25
    71

    72. JavaScript. Область видимости переменных

    strict mode
    Определение глобальных переменных в функциях может вести к
    потенциальным ошибкам. Чтобы их избежать используется строгий
    режим или strict mode:
    «use strict»;
    function bar() foo = «25»;
    >
    bar();
    console.log(foo);
    В этом случае мы получим ошибку SyntaxError: Unexpected identifier,
    которая говорит о том, что переменная foo не определена.
    72

    73. JavaScript. Область видимости переменных

    Установить режим strict mode можно двумя способами:
    добавить выражение «use strict» в начало кода JavaScript, тогда strict
    mode будет применяться для всего кода
    добавить выражение «use strict» в начало тела функции, тогда strict
    mode будет применяться только для этой функции
    73

    74. JavaScript. Объекты

    Есть несколько способов создания нового объекта.
    Первый способ заключается в использовании конструктора Object:
    var user = new Object();
    В данном случае объект называется user. Он определяется также, как и
    любая обычная переменная с помощью ключевого слова var.
    Выражение new Object() представляет вызов конструктора — функции,
    создающей новый объект. Для вызова конструктора применяется
    оператор new. Вызов конструктора фактически напоминает вызов
    обычной функции.
    Второй способ создания объекта представляет использование фигурных
    скобок:
    var user = <>;
    74

    75. JavaScript. Объекты

    Свойства объекта
    После создания объекта можно определить в нем свойства. Чтобы
    определить свойство, надо после названия объекта через точку указать
    имя свойства и присвоить ему значение:
    var user = <>;
    user.name = «Tom»;
    user.age = 26;
    75

    76. JavaScript. Объекты

    Также можно определить свойства при определении объекта:
    var user = name: «Tom»,
    age: 26
    >;
    Кроме того, доступен сокращенный способ определения свойств:
    var name = «Tom»;
    var age = 34;
    var user = ;
    console.log(user.name); // Tom
    console.log(user.age); // 34
    76

    77. JavaScript. Объекты

    Методы объекта
    Определяют его поведение или действия, которые он производит. Методы
    представляют собой функции. Например, определим метод, который бы
    выводил имя и возраст человека:
    var user = <>;
    user.name = «Tom»;
    user.age = 26;
    user.display = function() console.log(user.name);
    console.log(user.age);
    >;
    // вызов метода
    user.display();
    77

    78. JavaScript. Объекты

    Также методы могут определяться непосредственно при определении
    объекта:
    var user = name: «Tom»,
    age: 26,
    display: function() console.log(this.name);
    console.log(this.age);
    >
    >;
    78

    79. JavaScript. Объекты

    Чтобы обратиться к свойствам или методам объекта внутри этого
    объекта, используется ключевое слово this.
    Оно означает ссылку на текущий объект.
    Также можно использовать сокращенный способ определения методов,
    когда двоеточие и слово function опускаются.
    79

    80. JavaScript. Объекты

    var user = <
    name: «Tom»,
    age: 26,
    display() <
    console.log(this.name, this.age);
    >,
    move(place) <
    console.log(this.name, «goes to», place);
    >
    >;
    user.display(); // Tom 26
    user.move(«the shop»); // Tom goes to the shop
    80

    81. JavaScript. Объекты

    Существует также альтернативный способ определения свойств и
    методов с помощью синтаксиса массивов:
    var user = <>;
    user[«name»] = «Tom»;
    user[«age»] = 26;
    user[«display»] = function() console.log(user.name);
    console.log(user.age);
    >;
    // вызов метода
    user[«display»]();
    81

    82. JavaScript. Объекты

    Названия свойств и методов объекта всегда представляют строки.
    Предыдущее определение объекта можно переписать:
    var user = «name»: «Tom»,
    «age»: 26,
    «display»: function() console.log(user.name);
    console.log(user.age);
    >
    >;
    // вызов метода
    user.display();
    82

    83. JavaScript. Объекты

    Удаление свойств
    Можно также удалять свойства и методы с помощью оператора delete.
    И как и в случае с добавлением можно удалять свойства двумя
    способами.
    Первый способ — использование нотации точки:
    delete объект.свойство
    Либо использовать синтаксис массивов:
    delete объект[«свойство»]
    83

    84. JavaScript. Объекты

    Одни объекты могут содержать в качестве свойств другие объекты.
    var country = name: «Германия»,
    language: «немецкий»,
    capital: name: «Берлин»,
    population: 3375000,
    year: 1237
    >
    >;
    console.log(«Столица: » + country.capital.name); // Берлин
    console.log(«Население: » + country[«capital»][«population»]); // 3375000
    console.log(«Год основания: » + country.capital[«year»]); // 1237
    84

    85. JavaScript. Объекты

    var country = <
    name: «Швейцария»,
    languages: [«немецкий», «французский», «итальянский»],
    capital: <
    name: «Берн»,
    population: 126598
    >,
    cities: [
    < name: "Цюрих", population: 378884>,
    < name: "Женева", population: 188634>,
    < name: "Базель", population: 164937>
    ]
    >;
    // вывод всех элементов из country.languages
    document.write(«

    Официальные языки Швейцарии

    «);
    for(var i=0; i < country.languages.length; i++)
    document.write(country.languages[i] + «
    «);
    // вывод всех элементов из country.cities
    document.write(«

    Города Швейцарии

    «);
    for(var i=0; i < country.cities.length; i++)
    document.write(country.cities[i].name + «
    «);
    85

    86. JavaScript. Объекты

    87. JavaScript. Объекты

    При динамическом определении в объекте новых свойств и методов
    перед их использованием бывает важно проверить, а есть ли уже такие
    методы и свойства. Для этого в JavaScript может использоваться
    оператор in:
    var user = <>;
    user.name = «Tom»;
    user.age = 26;
    user.display = function() console.log(user.name);
    console.log(user.age);
    >;
    var hasNameProp = «name» in user;
    console.log(hasNameProp); // true — свойство name есть в user
    var hasWeightProp = «weight» in user;
    console.log(hasWeightProp); // false — в user нет свойства или метода под
    названием weight
    87

    88. JavaScript. Объекты

    Альтернативный способ заключается на значении undefined. Если
    свойство или метод равен undefined, то эти свойство или метод не
    определены:
    var hasNameProp = user.name!==undefined;
    console.log(hasNameProp); // true
    var hasWeightProp = user.weight!==undefined;
    console.log(hasWeightProp); // false
    88

    89. JavaScript. Объекты

    Кроме создания новых объектов JavaScript предоставляет возможность
    создавать новые типы объектов с помощью конструкторов. Так, одним из
    способов создания объекта является применение конструктора типа
    Object:
    var tom = new Object();
    После создания переменной tom она будет вести себя как объект типа
    Object.
    Конструктор позволяет определить новый тип объекта. Тип представляет
    собой абстрактное описание или шаблон объекта.
    89

    90. JavaScript. Объекты

    Определение типа может состоять из функции конструктора, методов и
    свойств.
    Для начала определим конструктор:
    function User(pName, pAge) this.name = pName;
    this.age = pAge;
    this.displayInfo = function() document.write(«Имя: » + this.name + «; возраст: » + this.age + «
    «);
    >;
    >
    Конструктор — это обычная функция за тем исключением, что в ней
    можно установить свойства и методы. Для установки свойств и методов
    используется ключевое слово this:
    this.name = pName;
    90

    91. JavaScript. Объекты

    После этого в программе мы можем определить объект типа User и
    использовать его свойства и методы:
    var tom = new User(«Том», 26);
    console.log(tom.name); // Том
    tom.displayInfo();
    Чтобы вызвать конструктор, то есть создать объект типа User, надо
    использовать ключевое слово new.
    91

    92. JavaScript. Объекты

    Оператор instanceof позволяет проверить, с помощью какого
    конструктора создан объект. Если объект создан с помощью
    определенного конструктора, то оператор возвращает true:
    var tom = new User(«Том», 26);
    var isUser = tom instanceof User;
    var isCar = tom instanceof Car;
    console.log(isUser); // true
    console.log(isCar); // false
    92

    93. JavaScript. Объекты

    Кроме непосредственного определения свойств и методов в конструкторе
    мы также можем использовать свойство prototype.
    Каждая функция имеет свойство prototype, представляющее прототип
    функции. То есть свойство User.prototype представляет прототип
    объектов User.
    И любые свойства и методы, которые будут определены в User.prototype,
    будут общими для всех объектов User.
    93

    94. JavaScript. Объекты

    User.prototype.maxAge = 110;
    var tom = new User(«Том», 26);
    var john = new User(«Джон», 28);
    tom.maxAge = 99;
    console.log(tom.maxAge); // 99
    console.log(john.maxAge); // 110
    При обращении к свойству maxAge javascript сначала ищет это свойство
    среди свойств объекта, и если оно не было найдено, тогда обращается к
    свойствам прототипа.
    94

    95. JavaScript. Объекты

    В JavaScript функция тоже является объектом — объектом Function и тоже
    имеет прототип, свойства, методы. Все функции, которые используются в
    программе, являются объектами Function и имеют все его свойства и
    методы.
    Например, мы можем создать функцию с помощью конструктора
    Function:
    var square = new Function(‘n’, ‘return n * n;’);
    console.log(square(5));
    95

    96. JavaScript. Объекты

    Среди свойств объекта Function можно выделить следующие:
    arguments: массив аргументов, передаваемых в функцию
    length: определяет количество аргументов, которые ожидает функция
    caller: определяет функцию, вызвавшую текущую выполняющуюся
    функцию
    name: имя функции
    prototype: прототип функции
    96

    97. JavaScript. Объекты

    С помощью прототипа можно определить дополнительные свойства:
    function display() console.log(«привет мир»);
    >
    Function.prototype.program =»Hello»;
    console.log(display.program); // Hello
    97

    98. JavaScript. Объекты

    Метод call() вызывает функцию с указанным значением this и
    аргументами:
    function add(x, y) return x + y;
    >
    var result = add.call(this, 3, 8);
    console.log(result); // 11
    this указывает на объект, для которого вызывается функция — в данном
    случае это глобальный объект window. После this передаются значения
    для параметров.
    98

    99. JavaScript. Объекты

    На метод call() похож метод apply(), который также вызывает функцию и
    в качестве первого параметра также получает объект, для которого
    функция вызывается.
    Только теперь в качестве второго параметра передается массив
    аргументов:
    function add(x, y) return x + y;
    >
    var result = add.apply(null, [3, 8]);
    console.log(result); // 11
    99

    100. JavaScript. Объекты

    Поведение ключевого слова this зависит от контекста, в котором оно
    используется, и от того, в каком режиме оно используется — строгом или
    нестрогом.
    В глобальном контексте this ссылается на глобальный объект. В данном
    случае поведение не зависит от режима (строгий или нестрогий):
    this.alert(«global alert»);
    this.console.log(«global console»);
    var currentDocument = this.document;
    100

    101. JavaScript. Объекты

    Контекст функции
    Если скрипт запускается в строгом режиме (директива «use strict»), то this
    ссылается непосредственно на контекст функции. Иначе this ссылается
    на внешний контекст.
    Например:
    function foo() var bar = «bar2»;
    console.log(this.bar);
    >
    var bar = «bar1»;
    foo(); // bar1
    101

    102. JavaScript. Объекты

    Контекст объекта
    В контексте объекта, в том числе в его методах, ключевое слово this
    ссылается на этот же объект:
    var o = bar: «bar3»,
    foo: function() console.log(this.bar);
    >
    >
    var bar = «bar1»;
    o.foo(); // bar3
    102

    103. JavaScript. Объекты

    С внедрением стандарта ES2015 (ES6) в JavaScript появился новый
    способ определения объектов — с помощью классов. Класс представляет
    описание объекта, его состояния и поведения, а объект является
    конкретным воплощением или экземпляром класса.
    Для определения класса используется ключевое слово class:
    class Person >
    После слова class идет название класса (в данном случае класс
    называется Person), и затем в фигурных скобках определяется тело
    класса.
    103

    104. JavaScript. Объекты

    Можно определить анонимный класс и присвоить его переменной:
    let Person = class<>
    После этого мы можем создать объекты класса с помощью конструктора:
    class Person<>
    let tom = new Person();
    let bob = new Person();
    104

    105. JavaScript. Объекты

    Можно определить в классе свои конструкторы.
    class Person constructor(name, age) this.name = name;
    this.age = age;
    >
    display() console.log(this.name, this.age);
    >
    >
    let tom = new Person(«Tom», 34);
    tom.display();
    // Tom 34
    console.log(tom.name); // Tom
    105

    106. JavaScript. Объекты

    Конструктор определяется с помощью метода с именем constructor. По
    сути это обычный метод, который может принимать параметры.
    Основная цель конструктора — инициализировать объект начальными
    данными. И в данном случае в конструктор передаются два значения для имени и возраста пользователя.
    Для хранения состояния в классе определяются свойства. Для их
    определения используется ключевое слово this. В данном случае в классе
    два свойства: name и age.
    106

    107. JavaScript. Встроенные объекты

    Объект Date позволяет работать с датами и временем в JavaScript.
    Существуют различные способы создания объекта Date.
    Первый способ заключается в использовании пустого конструктора без
    параметров:
    var currentDate = new Date();
    document.write(currentDate);
    107

    108. JavaScript. Встроенные объекты

    Второй способ заключается в передаче в конструктор Date количества
    миллисекунд, которые прошли с начала эпохи Unix, то есть с 1 января
    1970 года 00:00:00 GMT:
    var myDate = new Date(1359270000000);
    document.write(myDate); // Sun Jan 27 2013 10:00:00 GMT+0300 (RTZ 2
    (зима))
    108

    109. JavaScript. Встроенные объекты

    Третий способ состоит в передаче в конструктор Date дня, месяца и года:
    var myDate = new Date(«27 March 2008»);
    // или так
    // var myDate = new Date(«3/27/2008»);
    document.write(myDate); // Thu Mar 27 2008 00:00:00 GMT+0300 (RTZ 2
    (зима))
    109

    110. JavaScript. Получение даты и времени

    getDate(): возвращает день месяца
    getDay(): возвращает день недели (отсчет начинается с 0 воскресенье, и последний день — 6 — суббота)
    getMonth(): возвращает номер месяца (отсчет начинается с нуля, то
    есть месяц с номер 0 — январь)
    getFullYear(): возвращает год
    toDateString(): возвращает полную дату в виде строки
    getHours(): возвращает час (от 0 до 23)
    getMinutes(): возвращает минуты (от 0 до 59)
    getSeconds(): возвращает секунды (от 0 до 59)
    getMilliseconds(): возвращает миллисекунды (от 0 до 999)
    toTimeString(): возвращает полное время в виде строки
    110

    111. JavaScript. Установка даты и времени

    setDate(): установка дня в дате
    setMonth(): уставовка месяца (отсчет начинается с нуля, то есть месяц
    с номер 0 — январь)
    setFullYear(): устанавливает год
    setHours(): установка часа
    setMinutes(): установка минут
    setSeconds(): установка секунд
    setMilliseconds(): установка миллисекунд
    111

    112. JavaScript. Объект Math

    abs()
    Функция abs() возвращает абсолютное значение числа:
    var x = -25;
    document.write(Math.abs(x)); // 25
    min() и max()
    Функции min() и max() возвращают соответственно минимальное и
    максимальное значение из набора чисел:
    var min = Math.min(33, 24); // 24
    Эти функции необязательно должны принимать два числа, в них можно
    передавать и большее количество чисел:
    ceil()
    Функция ceil() округляет число до следующего наибольшего целого
    числа:
    var x = Math.ceil(9.2); // 10
    112

    113. JavaScript. Объект Math

    floor()
    Функция floor() округляет число до следующего наименьшего целого
    числа:
    var x = Math.floor(9.2); // 9
    round()
    Функция round() округляет число до следующего наименьшего целого
    числа, если его десятичная часть меньше 0.5. Если же десятичная часть
    равна или больше 0.5, то округление идет до ближайшего наибольшего
    целого числа:
    var x = Math.round(5.5); // 6
    random()
    Функция random() возвращает случайное число с плавающей точкой их
    диапазона от 0 до 1:
    var x = Math.random();
    113

    114. JavaScript. Объект Math

    pow()
    Функция pow() возвращает число в определенной степени. Например,
    возведем число 2 в степень 3:
    var x = Math.pow(2, 3); // 8
    sqrt()
    var x = Math.sqrt(121); // 11
    log()
    Функция log() возвращает натуральный логарифм числа:
    var x = Math.log(1); // 0
    114

    115. JavaScript. Объект Math

    Константы
    Кроме методов объект Math также определяет набор встроенных
    констант, которые можно использовать в различных вычислениях:
    Math.PI (число PI): 3.141592653589793
    Math.SQRT2 (квадратный корень из двух): 1.4142135623730951
    Math.SQRT1_2 (половина от квадратного корня из двух):
    0.7071067811865476
    Math.E (число e или число Эйлера): 2.718281828459045
    Math.LN2 (натуральный логарифм числа 2): 0.6931471805599453
    Math.LN10 (натуральный логарифм числа 10): 2.302585092994046
    Math.LOG2E (двоичный логарифм числа e): 1.4426950408889634
    Math.LOG10E (десятичный логарифм числа e): 0.4342944819032518
    115

    116. JavaScript. Работа с браузером

    Большое значение в JavaScript имеет работа с веб-браузером и теми
    объектами, которые он предоставляет.
    Например, использование объектов браузера позволяет манипулировать
    элементами html, которые имеются на странице, или взаимодействовать с
    пользователем.
    Все объекты, через которые JavaScript взаимодействует с браузером,
    описываются таким понятием как Browser Object Model (Объектная
    Модель Браузера).
    116

    117. JavaScript. Работа с браузером

    118. JavaScript. Работа с браузером

    Объект window представляет собой окно веб-браузера, в котором
    размещаются веб-страницы. window является глобальным объектом,
    поэтому при доступе к его свойствам и методам необязательно
    использовать его имя.
    Например, window имеет метод alert(), который отображает окно
    сообщения.
    Но нам необязательно писать:
    window.alert(«Привет мир!»);
    window можно не использовать:
    alert(«Привет мир!»);
    118

    119. JavaScript. Работа с браузером

    Метод alert() выводит окно с сообщением:
    alert(«hello world»);
    Метод confirm() отображает окно с сообщением, в котором пользователь
    должен подтвердить действие двух кнопок OK и Отмена. В зависимости
    от выбора пользователя метод возвращает true (если пользователь нажал
    OK) или false (если пользователь нажал кнопку Отмены):
    var result = confirm(«Завершить выполнение программы?»);
    if(result===true)
    document.write(«Работа программы завершена»);
    else
    document.write(«Программа продолжает работать»);
    119

    120. JavaScript. Работа с браузером

    Метод prompt() позволяет с помощью диалогового окна запрашивать у
    пользователя какие-либо данные. Данный метод возвращает введенное
    пользователем значение:
    var age = prompt(«Введите свой возраст:»);
    document.write(«Вам » + age + » лет»);
    120

    121. JavaScript. Работа с браузером

    Объект window также предоставляет ряд методов для управления
    окнами браузера. Так, метод open() открывает определенный ресурс в
    новом окне браузера:
    var popup = window.open(‘https://microsoft.com’, ‘Microsoft’, ‘width=400,
    height=400, resizable=yes’);
    Метод open() принимает ряд параметров: путь к ресурсу, описательное
    название для окна и в качестве третьего параметра набор стилевых
    значений окна. Метод возвращает ссылку на объект нового окна.
    121

    122. JavaScript. Работа с браузером

    width: ширина окна в пикселях. Например, width=640
    height: высота окна в пикселях. Например, height=480
    left: координата X относительно начала экрана в пикселях. Например, left=0
    top: координата Y относительно начала экрана в пикселях. Например, top=0
    titlebar: будет ли окно иметь строку с заголовком. Например, titlebar=no
    menubar: будет ли окно иметь панель меню. Например, menubar=yes
    toolbar: будет ли окно иметь панели инструментов. Например, toolbar=yes
    location: будет ли окно иметь адресную строку. Например, location=no
    scrollbars: допускается ли наличие полос прокрутки. Например, scrollbars=yes
    status: наличие статусной строки. Например, status=yes
    resizable: может ли окно изменять размеры. Например, resizable=no
    122

    123. JavaScript. Работа с браузером

    С помощью метода close() можно закрыть окно. Например, откроем
    новое окно и через 10 секунд закроем его:
    var popup = window.open(‘https://microsoft.com’, ‘Microsoft’, ‘width=400,
    height=400, resizable=yes’);
    function closeWindow() popup.close();
    >
    setTimeout(closeWindow, 10000);
    123

    124. JavaScript. Работа с браузером

    Метод moveTo() позволяет переместить окно на новую позицию:
    var popup = window.open(‘https://microsoft.com’, ‘Microsoft’, ‘width=400,
    height=400, resizable=yes’);
    popup.moveTo(50,50);
    В данном случае окно перемещается на позицию с координатами x=50,
    y=50 относительно левого верхнего угла экрана.
    Метод resizeTo() позволяет изменить размеры окна:
    var popup = window.open(‘https://microsoft.com’, ‘Microsoft’, ‘width=400,
    height=400, resizable=yes’);
    popup.resizeTo(500,350); // 500 — ширина и 350 — высота
    124

    125. JavaScript. Таймеры

    Для выполнения действий через определенные промежутки времени в
    объекте window предусмотрены функции таймеров.
    Есть два типа таймеров:
    одни выполняются только один раз,
    а другие постоянно через промежуток времени.
    125

    126. JavaScript. Таймеры

    Функция setTimeout
    Для одноразового выполнения действий через промежуток времени
    предназначена функция setTimeout(). Она может принимать два параметра:
    var timerId = setTimeout(someFunction, period)
    Параметр period указывает на промежуток, через который будет выполняться
    функция из параметра someFunction. А в качестве результата функция возвращает
    id таймера.
    function timerFunction() document.write(«выполнение функции setTimeout»);
    >
    setTimeout(timerFunction, 3000);
    126

    127. JavaScript. Таймеры

    Для остановки таймера применяется функция clearTimeout().
    function timerFunction() document.write(«выполнение функции setTimeout»);
    >
    var timerId = setTimeout(timerFunction, 3000);
    clearTimeout(timerId);
    127

    128. JavaScript. Таймеры

    Функция setInterval
    Функции setInterval() и clearInterval() работают аналогично функциям
    setTimeout() и clearTimeout() с той лишь разницей, что setInterval()
    постоянно выполняет определенную функцию через промежуток
    времени.
    128

    129. JavaScript. Работа с DOM




    Page Title

    Page Header

    Block Header

    Text



    129

    130. JavaScript. Работа с DOM

    Существует следующие виды узлов:
    Element: html-элемент
    Attr: атрибут html-элемента
    Document: корневой узел html-документа
    DocumentType: DTD или тип схемы XML-документа
    DocumentFragment: место для временного хранения частей
    документа
    EntityReference: ссылка на сущность XML-документа
    ProcessingInstruction: инструкция обработки веб-страницы
    Comment: элемент комментария
    Text: текст элемента
    CDATASection: секция CDATA в документе XML
    Entity: необработанная сущность DTD
    Notation: нотация, объявленная в DTD
    130

    131. JavaScript. Работа с DOM

    Для поиска элементов на странице применяются следующие методы:
    getElementById(value): выбирает элемент, у которого атрибут id равен
    value
    getElementsByTagName(value): выбирает все элементы, у которых тег
    равен value
    getElementsByClassName(value): выбирает все элементы, которые
    имеют класс value
    querySelector(value): выбирает первый элемент, который соответствует
    css-селектору value
    querySelectorAll(value): выбирает все элементы, которые
    соответствуют css-селектору value
    131

    132. JavaScript. Работа с DOM

    Объект document позволяет обратиться к определенным элементам вебстраницы через свойства:
    documentElement: предоставляет доступ к корневому элементу
    body: предоставляет доступ к элементу на веб-странице
    images: содержит коллекцию всех объектов изображений (элементов
    img)
    links: содержит коллекцию ссылок — элементов и , у
    которых определен атрибут href
    anchors: предоставляет доступ к коллекции элементов , у которых
    определен атрибут name
    forms: содержит коллекцию всех форм на веб-странице
    132

    133. JavaScript. Работа с DOM





    Картинка 1
    Картинка 2
    Картинка 3



    133

    134. JavaScript. Работа с DOM

    Каждый отдельный узел, будь то html-элемент, его атрибут или текст, в
    структуре DOM представлен объектом Node. Этот объект предоставляет
    ряд свойств:
    childNodes: содержит коллекцию дочерних узлов
    firstChild: возвращает первый дочерний узел текущего узла
    lastChild: возвращает последний дочерний узел текущего узла
    previousSibling: возвращает предыдущий элемент, который находится
    на одном уровне с текущим
    nextSibling: возвращает следующий элемент, который находится на
    одном уровне с текущим
    ownerDocument: возвращает корневой узел документа
    parentNode: возвращает элемент, который содержит текущий узел
    nodeName: возвращает имя узла
    nodeType: возвращает тип узла в виде числа
    nodeValue: возвращает или устанавливает значение узла в виде
    134
    простого текста

    135. JavaScript. События

    Для взаимодействия с пользователем в JavaScript определен механизм
    событий. Например, когда пользователь нажимает кнопку, то возникает
    событие нажатия кнопки. В коде JavaScript мы можем определить
    возникновение события и как-то его обработать.
    В JavaScript есть следующие типы событий:
    События мыши (перемещение курсора, нажатие мыши и т.д.)
    События клавиатуры (нажатие или отпускание клавиши клавиатуры)
    События жизненного цикла элементов (например, событие загрузки
    веб-станицы)
    События элементов форм (нажатие кнопки на форме, выбор элемента
    в выпадающем списке и т.д.)
    События, возникающие при изменении элементов DOM
    События, возникающие при касании на сенсорных экранах
    События, возникающие при возникновении ошибок
    135

    136. JavaScript. События

    Рассмотрим простейшую обработку событий. Например, на веб-странице
    у нас есть следующий элемент div:

    style=»width:50px;height:50px;background-color:blue;»>

    Здесь определен обычный блок div, который имеет атрибут onclick,
    который задает обработчик события нажатия на блок div. То есть, чтобы
    обработать какое-либо событие, нам надо определить для него
    обработчик. Обработчик представляет собой код на языке JavaScript. В
    данном случае обработчик выглядит довольно просто:
    alert(‘Нажато’)
    136

    Что такое JavaScript?

    Добро пожаловать на курс MDN JavaScript для начинающих! В первой статье курса мы дадим базовое определение JavaScript, ответим на вопросы «Что такое JavaScript?» и «Что он делает?», узнаем как работает JavaScript и как добавить его на веб-страницу.

    Необходимые навыки: Базовая компьютерная грамотность, знание основ HTML и CSS.
    Цели: Знакомство с JavaScript и его возможностями, способами его подключения к веб-странице.

    Определение высокого уровня

    JavaScript это язык, который позволяет вам применять сложные вещи на web странице — каждый раз, когда на web странице происходит что-то большее, чем просто её статичное отображение — отображение периодически обновляемого контента, или интерактивных карт, или анимация 2D/3D графики, или прокрутка видео в проигрывателе, и т.д. — можете быть уверены, что скорее всего, не обошлось без JavaScript. Это третий слой слоёного пирога стандартных web технологий, два из которых (HTML и CSS) мы детально раскрыли в других частях учебного пособия.

    Три слоя стандартных веб-технологий: HTML, CSS и JavaScript

    • HTML — язык разметки, который мы используем для визуального и смыслового структурирования нашего web контента, например, определяем параграфы, заголовки, таблицы данных, или вставляем изображения и видео на страницу.
    • CSS — язык стилей с помощью которого мы придаём стиль отображения нашего HTML контента, например придаём цвет фону (background) и шрифту, придаём контенту многоколоночный вид.
    • JavaScript — язык программирования, который позволяет создавать динамически обновляемый контент, управлять мультимедиа, анимировать изображения и делать многое другое.

    Три слоя прекрасно выстраиваются друг над другом. Для примера примера возьмём кнопку. Чтобы задать структуру, создадим разметку с помощью HTML:

    button type="button">Player 1: Chrisbutton> 

    Кнопка с надписью

    Затем добавим немного CSS, чтобы кнопка выглядела симпатичнее:

    button  font-family: "helvetica neue", helvetica, sans-serif; letter-spacing: 1px; text-transform: uppercase; border: 2px solid rgb(200 200 0 / 0.6); background-color: rgb(0 217 217 / 0.6); color: rgb(100 0 0 / 1); box-shadow: 1px 1px 2px rgb(0 0 200 / 0.4); border-radius: 10px; padding: 3px 10px; cursor: pointer; > 

    Кнопка с надписью

    И наконец добавим немного JavaScript для реализации динамического поведения:

    const button = document.querySelector("button"); button.addEventListener("click", updateName); function updateName()  const name = prompt("Enter a new name"); button.textContent = `Player 1: $name>`; > 

    Попробуйте кликнуть по тексту чтобы увидеть, что произойдёт (Вы так же можете найти это демо на GitHub — смотрите исходный код, или запустите вживую)!

    JavaScript может делать намного больше — давайте выясним это более детально.

    Так что же он действительно может делать?

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

    • Хранить данные внутри переменных. В примере выше, мы, например, запрашивали ввод нового имени, которое нужно было ввести, затем сохраняли имя в переменной name .
    • Операции над фрагментами текстов (известными в программировании как «строки»). В примере выше мы брали строку «Player 1: » и присоединили её к значению переменной name для получения полного текста, например: «Player 1: Chris».
    • Запускать код в соответствии с определёнными событиями происходящими на web странице. В нашем примере выше, мы использовали click (en-US) событие, для определения момента, когда кнопка была кликнута, в соответствии с этим запускался код, который обновлял текст.
    • И многое другое!

    Ещё более увлекательным является функциональность, созданная поверх основного языка JavaScript. Так называемые интерфейсы прикладного программирования (API) предоставляют вам дополнительные сверхспособности для использования в вашем коде JavaScript.

    API — это готовые наборы блоков кода, которые позволяют разработчику реализовывать программы, которые в противном случае было бы трудно или невозможно реализовать. Они делают то же самое для программирования, что готовые комплекты мебели делают для домашнего строительства — гораздо проще брать готовые панели и скручивать их вместе, чтобы сделать книжную полку, чем самому разрабатывать дизайн, ходить в поисках правильной древесины, вырезать все панели необходимого размера и формы, найти подходящие винты, а затем собрать их вместе, чтобы сделать книжную полку.

    Они обычно делятся на две категории.

    API-интерфейсы браузера встроены в ваш веб-браузер и могут отображать данные из окружающего компьютерного окружения или делать полезные сложные вещи. Например:

    • API-интерфейс DOM (Document Object Model) позволяет вам манипулировать HTML и CSS, создавать, удалять и изменять HTML, динамически применять новые стили к вашей странице и т. д.. Каждый раз, когда вы видите всплывающее окно на странице или какое-то новое содержимое, Как мы видели выше в нашем простом демо), например, это DOM в действии.
    • API геолокации извлекает географическую информацию. Так Google Maps может найти ваше местоположение и нанести его на карту.
    • API Canvas и WebGL позволяют создавать анимированные 2D и 3D-графики. Люди делают некоторые удивительные вещи, используя эти веб-технологии — см. Chrome Experiments и webglsamples.
    • Аудио и видео API, такие как HTMLMediaElement и WebRTC, позволяют делать действительно интересные вещи с мультимедиа, такие как проигрывание аудио и видео прямо на веб-странице, или захватывать видео с веб-камеры и отображать его на Чужой компьютер (попробуйте наш простой демонстрационный снимок, чтобы понять идею)

    Примечание: Большинство наших демо не будут корректно работать в старых браузерах — поэтому будет хорошей идеей, для запуска вашего кода установить один из современных браузеров , таких как Firefox, Chrome, Edge или Opera . Также понадобится более подробно рассмотреть раздел по кроссбраузерному тестированию, когда вы приблизитесь к разработке производственного кода (т.е реального кода, который будут использовать клиенты).

    По умолчанию сторонние API-интерфейсы не встроены в браузер, и вам придётся захватывать их код и информацию из какого-либо места в Сети. Для примера:

    • Twitter API позволяет вам отображать ваши последние твиты на вашем веб-сайте.
    • Google Maps API позволяет вам встраивать пользовательские карты на ваш сайт и другой подобный функционал.

    Примечание: Эти API-и являются продвинутыми, и мы не будем их рассматривать в нашем курсе, но ссылки, данные выше, предлагают полную документацию, если вы заинтересованы в более подробной информации.

    Доступно ещё больше! Но пока не заостряйте на этом внимание. Вы не сможете создать следующий Facebook, Google Maps или Instagram после 24 часов изучения JavaScript — сначала нужно изучить основы. И именно для этого вы здесь — давайте двигаться дальше!

    Что JavaScript делает на вашей странице?

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

    Давайте составим краткий бриф, что же происходит когда мы загружаем страничку в браузере (первое упоминание в статье Как работает CSS). Когда вы загружаете страничку в браузере, вы запускаете ваш код (HTML, CSS и JavaScript) внутри исполняемой среды (внутри вкладки браузера). Это как будто фабрика берёт сырьё (некий код) и выдаёт продукцию (веб-страничку).

    Код JavaScript выполняется JavaScript-движком браузера, после того как код HTML и CSS был обработан и сформирован в веб-страницу. Это гарантирует, что структура и стиль страницы уже сформированы к моменту запуска JavaScript.

    Это хорошо, так как часто использование JavaScript заключается в динамическом изменении HTML и CSS в целях обновления пользовательского интерфейса посредством Document Object Model API (как упоминалось выше). Если бы запуск JavaScript осуществлялся прежде загрузки HTML и CSS, то это привело бы к возникновению ошибок.

    Безопасность браузера

    Каждая вкладка браузера представляет собой отдельную коробку для запуска кода (в техническом языке, эти коробки называются «средами исполнения») — это значит, что в большинстве случаев код на каждой вкладке запускается полностью отдельно, а код одной вкладки не может напрямую влиять на код другой вкладки или на другом веб-сайте. Это хорошая мера безопасности — если бы это было иначе, пираты могли написать код, который крал информацию с других сайтов или делал другие плохие вещи.

    Примечание: Есть способы отправлять код и данные между разными веб-сайтами/вкладками безопасным способом, но это продвинутые методы, которые мы не будем рассматривать в рамках этого курса.

    Последовательность выполнения JavaScript

    Обычно, когда браузер сталкивается с блоком JavaScript, он запускает его по порядку, сверху вниз. Это значит, что вам нужно осторожно выбирать порядок. Например, вернёмся к блоку JavaScript, который мы видели в первом примере:

    const para = document.querySelector(‘p’); para.addEventListener(‘click’, updateName); function updateName()

    Здесь мы выбираем абзац текста (строка 1), а затем добавляем к нему обнаружение событий (строка 3), чтобы при нажатии на этот абзац выполнялся блок кода updateName() (строки 5–8). Блок кода updateName() (эти типы многократно используемых блоков кода называются «функции») запрашивает у пользователя новое имя, а затем вставляет это имя в абзац для обновления отображения.

    Если вы поменяете порядок первых двух строк кода, он перестанет работать — вместо этого вы получите ошибку возвращаемую в консоль браузера — TypeError: para is undefined . Это значит, что объект para ещё не существует и вы не можете добавить к нему обнаружение событий.

    Примечание: Это очень частая ошибка — вы должны быть осторожны, чтобы объекты, на которые ссылается ваш код, существовали до того, как вы попытаетесь что-то с ними сделать.

    Интерпретируемый против компилируемого кода

    В контексте программирования, вы можете услышать термины интерпретация и компиляция. JavaScript является интерпретируемым языком — код запускается сверху вниз и результат запуска немедленно возвращается. Вам не нужно преобразовывать код в другую форму, перед запуском в браузере.

    С другой стороны, компилируемые языки преобразуются (компилируются) в другую форму, прежде чем они будут запущены компьютером. Например, C / C ++ компилируются в язык ассемблера, который затем запускается компьютером.

    Оба подхода имеют разные преимущества, которые на данном этапе мы обсуждать не будем.

    Серверный против клиентского кода

    Вы так же можете услышать термины серверный и клиентский код, особенно в контексте веб-разработки. Клиентский код — это код, который запускается на компьютере пользователя. При просмотре веб-страницы, клиентский код загружается, а затем запускается и отображается браузером. В этом модуле JavaScript мы явно говорим о клиентском JavaScript.

    С другой стороны, серверный код запускается на сервере, затем его результаты загружаются и отображаются в браузере. Примеры популярных серверных веб-языков включают PHP, Python, Ruby и ASP.NET. И JavaScript! JavaScript так же может использоваться, как серверный язык, например в популярной среде Node.js — вы можете больше узнать о серверном JavaScript в нашем разделе Dynamic Websites – Server-side programming.

    Слово динамический используется для описания и клиентского JavaScript, и серверного языка — это относится к возможности обновления отображения веб-страницы/приложения, чтобы показывать разные вещи в разных обстоятельствах, генерируя новый контент по мере необходимости. Серверный код динамически генерирует новый контент на сервере, например достаёт данные из базы данных, тогда как клиентский JavaScript динамически генерирует новое содержание внутри браузера на клиенте, например создаёт новую HTML таблицу, вставляя в неё данные полученные с сервера, затем отображает таблицу на веб-странице, которую видит пользователь. В этих двух контекстах значение немного отличается, но связано, и обычно оба подхода (серверный и клиентский) работают вместе.

    Веб-страница без динамического обновления контента называется статической — она просто показывает один и тот же контент все время.

    Как добавить JavaScript на вашу страницу?

    Внутренний JavaScript

    1. Сначала, сделайте локальную копию нашего файла-примера apply-javascript.html. Сохраните его в удобное для вас место.
    2. Откройте этот файл в вашем браузере и в вашем текстовом редакторе. Вы увидите, что HTML создаёт простую веб-страницу с активной кнопкой.
    3. Затем, перейдите в текстовый редактор и добавьте следующие строки перед закрывающим тегом :
    script> // здесь будет JavaScript script> 
    .addEventListener("DOMContentLoaded", function ()  function createParagraph()  let para = document.createElement("p"); para.textContent = "You clicked the button!"; document.body.appendChild(para); > const buttons = document.querySelectorAll("button"); for (let i = 0; i  buttons.length; i++)  buttons[i].addEventListener("click", createParagraph); > >); 

    Примечание: вы можете увидеть эту версию на GitHub-е как apply-javascript-internal.html (посмотреть вживую).

    Внешний JavaScript

    Это отлично работает, но что если мы хотим поместить наш JavaScript в отдельный файл? Давайте сейчас разберёмся с этим.

    1. Сначала, создайте новый файл в той же папке, что и ваш файл-пример HTML. Назовите его script.js — убедитесь, что у имени файла расширение .js, так как оно распознается, как JavaScript.
    2. Замените ваш текущий элемент на следующий:

    script src="script.js" defer> script> 
    function createParagraph()  let para = document.createElement("p"); para.textContent = "You clicked the button!"; document.body.appendChild(para); > const buttons = document.querySelectorAll("button"); for (let i = 0; i  buttons.length; i++)  buttons[i].addEventListener("click", createParagraph); > 

    Примечание: вы можете увидеть эту версию на GitHub-е как apply-javascript-external.html и script.js (посмотреть вживую).

    Инлайновые JavaScript обработчики

    Обратите внимание, что иногда можно столкнуться с частями JavaScript-кода, который живёт внутри HTML. Это может выглядеть примерно так:

    function createParagraph()  var para = document.createElement("p"); para.textContent = "You clicked the button!"; document.body.appendChild(para); > 
    button onclick="createParagraph()">Click me!button> 

    Вы можете попробовать эту версию в нашей демонстрации ниже:

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

    Но пожалуйста, не делайте этого. Это плохая практика — загрязнять ваш HTML кодом JavaScript, и она не эффективна — вам нужно будет добавить атрибут onclick=»createParagraph()» к каждой кнопке, к которой вы хотите подключить JavaScript.

    Использование чистой JavaScript конструкции, позволит вам выбрать все кнопки, используя одну команду. Код, который можно использовали для этой цели, выглядит следующим образом:

    const buttons = document.querySelectorAll("button"); for (let i = 0; i  buttons.length; i++)  buttons[i].addEventListener("click", createParagraph); > 

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

    Примечание: Попробуйте отредактировать вашу версию apply-javascript.html и добавить ещё несколько кнопок в файл. После перезагрузки вы должны увидеть, что все кнопки создают параграф, если кликнуть на них. Классно, да?

    Стратегии загрузки скриптов

    Существует ряд проблем, связанных с загрузкой скриптов в нужное время. Всё не так просто, как кажется! Распространённой проблемой является то, что весь HTML-код на странице загружается в том порядке, в котором отображается. Если вы используете JavaScript для манипуляции элементами на странице (или, точнее, в DOM – Объектной Модели Документа), ваш код не будет работать, если JavaScript-код загрузится и распознается раньше HTML-кода, с которым вы пытаетесь взаимодействовать.

    Комментарии

    Так же, как и в HTML и CSS, возможно писать комментарии в вашем JavaScript-коде, что будет проигнорировано браузером, и существует только для того, чтобы давать подсказки вашим друзьям-разработчикам о том, как работает код (и лично вам, если вы вернётесь к коду спустя 6 месяцев и не сможете вспомнить, что вы делали). Комментарии очень полезны, и вы должны часто их использовать, особенно для больших приложений. Вот два типа комментариев:

      Однострочный комментарий пишется после двойного слеша (//), например:

    // Я комментарий 
    /* Я тоже комментарий */ 

    Так, например, мы можем описать наш последний демо-пример JavaScript подобными комментариями:

    // Функция: создаёт новый параграф и добавляет его вниз тела HTML. function createParagraph()  var para = document.createElement("p"); para.textContent = "You clicked the button!"; document.body.appendChild(para); > /* 1. Получаем ссылки на все кнопки на странице в виде массива. 2. Перебираем все кнопки и добавляем к ним отслеживатель события нажатия. При нажатии любой кнопки, будет выполняться функция createParagraph(). */ var buttons = document.querySelectorAll("button"); for (var i = 0; i  buttons.length; i++)  buttons[i].addEventListener("click", createParagraph); > 

    Выводы

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

    JavaScript может показаться немного пугающим в данным момент, но не переживайте — в этом курсе мы проведём вас сквозь него простыми шагами, которые имеют смысл, забегая наперёд. В следующей главе мы погрузимся непосредственно в практику, подталкивая вас погрузиться в код и сделать ваши собственные примеры JavaScript.

    Found a content problem with this page?

    • Edit the page on GitHub.
    • Report the content issue.
    • View the source on GitHub.

    This page was last modified on 3 янв. 2024 г. by MDN contributors.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *