Урок по JS #2.
Строгий режим "use strict"
Директива применяется для того, чтобы активировать работу старого кода (до 2009 года). Когда директива находится в начале скрипта, весь сценарий работает в современном режиме.
Важно, чтобы "use strict" находился в первой исполняемой строке скрипта, иначе он не будет применен.
Отменить строгий режим невозможно, поэтому как только мы входим в строгий режим, движок начинает работу с новым поведением.
По умолчанию, в браузерах отключен строгий режим. Включить его можно:
- Открыв консоль, использовать Shift+Enter для ввода нескольких строк и написать в верхней
use strict. - Обернуть код в функцию.
Переменные
Назначение переменных - хранение информации, данных и т.д.
Переменная в JS создается с помощью ключевого слова let. Также, переменная нуждается в имени. Данные помещаются в переменную с помощью оператора присваивания =. Пример:
В старых скриптах используется другое ключевое слово - var (вместо let).
Изменять значение (имя) переменной мы можем множество раз, однако, старое значение при этом удаляется из нее. Также можно объявить несколько переменных и скопировать данные из одной в другую. Пример:
let hello = 'Hello world!'; let message; message = hello; alert(hello); // Hello world! alert(message); // Hello world!
Переменная может быть объявлена только один раз, впоследствии стоит использовать ее без let.
Некоторые языки программирования не предполагают в себе изменение значения переменной (Scala и Erlang). Для сохранения чего-то другого, необходимо создать новую переменную.
Правила присвоения значения переменной:
- имена переменных задаются с помощью букв, цифр и символов
$и_; - первый символ не должен быть цифрой;
- длинные имена обозначаются "верблюжьей нотацией";
- для имен переменных регистр имеет значение;
- имя может быть задано на любом языке, но традиционным считается английский;
- имя переменной не может быть задано зарезервированным именем -
let,class,returnиfunction.
В строгом режиме невозможно создать переменную без использования слова let. Если в скрипте num = 5; прописано без ключевого слова, то это признак старого кода.
Константы
Иными словами это неизменяемая переменная, назначается с помощью const.
Константы могут использоваться в качестве слов-псевдонимов для труднозапоминаемых значений, которые известны до начала выполнения скрипта. Пишутся они с заглавными буквами и подчеркиванием, например const COLOR_RED = "#F00";. Используются для жестко задокидованных значений (код цвета, координаты и др.)
Существуют константы, которые вычисляются в процессе выполнения сценария, но затем остаются неизменными. Такие константы прописываются "верблюжьейНотацией".
Название переменной должно отражать всю суть содержания, хранящегося в ней.
Правила обозначения имени переменной:
- использовать лаконичные имена - например
userName; - избегать использование аббревиатур, кроме важных случаев;
- достигать максимальной описательности имени;
- переменные, связанные друг с другом, должны отражать "корневое" имя.
В любой ситуации лучше создавать новые переменные, а не заменять существующие.
Типы данных
Числовой тип (number)
Может быть как целым числом, так и дробным с плавающей точкой. С числами можно выполнять различные операции: умножение *, деление /, сложение +, вычитание - и т.д.
Существуют и другие типы чисел - «специальные числовые значения»:
Infinityили математическая бесконечность ∞. Это особое значение, которое больше любого числа. Можно получить в результате деления на 0, либо просто задать его;- Антипод предыдущего значения со знаком минус
-Infinity; NaNозначает вычислительную ошибку. Любая операция с этим значием, возвращает его, т.е. если где-то в математическом выражении естьNaN, то результатом вычислений с его участием будетNaN;
У такого типа данных есть ограничения - число не может быть больше, чем (253-1) (т. е. 9007199254740991), или меньше, чем -(253-1) для отрицательных чисел.
53 над цифрой 2 - степень.
Для обозначения чисел, выходящих за эти пределы используется тип BigInt. Он позволяет работать с целыми числами произвольной длины. Чтобы задать такое значение, нужно добавить n в конце числа:
const bigInt = 1234567890123456789012345678901234567890n;
Строка (string)
Данные, которые должны быть заключены в кавычки. Строка может содержать ноль, один или множество символов.
В JS существует три типа кавычек:
- Двойные кавычки:
"Привет". - Одинарные кавычки:
'Привет'. - Обратные кавычки:
`Привет`- позволяют встраивать переменные.
Вообще, обратные кавычки обладают широкой функциональностью. Они могут встраивать выражения или переменные в строку с помощью символов ${…}.
В отличие от других языков программирования (C или Java) в JS отсутствует отдельный тип данных для одного символа.
Булевый (логический) тип (boolean)
Используется для хранения значений да/нет: true значит «да/правильно», а false значит «нет/не правильно». Можно задать такой тип как значение переменной, либо как результат сравнения.
Значение "null"
Представляется ссылкой на несуществующий объект, буквально, означает ничего, пустоту.
Значение "undefined"
Означает, что значение не было присвоено. Так, если переменная будет объявлена, но значение не задано будет выведено «undefined».
Объект и символы (object & symbol)
Объект - сложный тип данных. В отличие от примитивных (строки, числа и др.), он хранит в себе коллекции данных или сложные структуры.
Символ - тип, применяемый для уникальный идентификаторов в объектах.
Оператор typeof
Применяется для возвращения типа аргумента. Полезно, когда требуется различная обработка типов или в случае проверки.