Часть 1 типов, значений и переменных.

Типы

Число

JavaScript использует числа в качестве основного числового типа, представляющего целые числа и приблизительные действительные числа. Js использует 64-битную систему с плавающей запятой, что означает, что диапазон чисел начинается с -9 007 199 254 740 992 (-253) и доходит до 9 007 199 254 740 992 (253). Использование меньших или больших чисел может привести к потере точности. Перед числовыми литералами может стоять минус (-), чтобы сделать число отрицательным.

Целочисленные литералы в JavaScript могут быть представлены в разных системах счисления. Литералы с основанием 10 являются наиболее распространенными и записываются как обычные десятичные числа. Например: 13. Литералы с основанием 16, также известные как шестнадцатеричные, имеют префикс «0x» и используют цифры 0–9 и A-F. Например, 0xFF (представляет 255). Литералы с основанием 2, также известные как двоичные, имеют префикс «0b» и состоят только из 0 и 1, представляя числа в двоичной форме. Например, 0b1010 (обозначает 10).

Литералы с плавающей запятой в JavaScript позволяют представлять дробные числа, такие как 3,13, с десятичными точками, указывающими на разделение целой и дробной частей. Кроме того, вы можете использовать символы подчеркивания для разрыва длинных литералов. Например, 3.14_159_265. Это может улучшить читаемость, особенно для больших числовых значений.

Арифметические операции в JavaScript включают выполнение математических вычислений над числовыми значениями. Основные арифметические операции включают сложение (+), вычитание (-), умножение (*), деление (/) и по модулю (%), которые вычисляют остаток при делении одного числа на другое.

Некоторые часто используемые математические объектные функции и константы в JavaScript:

  • Math.abs(x): возвращает абсолютное значение числа x.
  • Math.ceil(x): округляет число x до ближайшего целого числа.
  • Math.floor(x): округляет число x до ближайшего целого числа.
  • Math.max(x1, x2, …, xn): возвращает максимальное значение среди заданных чисел.
  • Math.min(x1, x2, …, xn): возвращает минимальное значение среди заданных чисел.
  • Math.pow(x, y): возводит x в степень y.
  • Math.random(): генерирует случайное число с плавающей запятой от 0 (включительно) до 1 (исключительно).
  • Math.round(x): округляет число x до ближайшего целого числа.
  • Math.sqrt(x): вычисляет квадратный корень из числа x.
  • Math.trunc(x): возвращает целую часть числа x, удаляя десятичную часть, эффективно усекая до нуля.

Доступно несколько других функций объекта Math, в том числе тригонометрические, экспоненциальные и логарифмические функции.

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

JavaScript использует специальные значения для представления определенных ситуаций. Если в результате вычисления получается значение, которое слишком велико для представления, оно становится «Бесконечность». Кроме того, неопределенные или непредставимые вычисления приводят к «NaN» (не число).

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

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

BigInt — это встроенный объект JavaScript, представленный в ES2020, который позволяет использовать целые числа произвольной точности. В отличие от обычных числовых значений, BigInt может точно представлять и выполнять операции над чрезвычайно большими целыми числами без потери точности.

В JavaScript объект Date предоставляет функциональные возможности для работы с датами и временем. Он позволяет создавать даты, управлять ими и форматировать их, а также выполнять такие операции, как вычисление разницы во времени и извлечение определенных компонентов даты. Например, вы можете создать новый объект Date, представляющий текущую дату и время, используя new Date(), или проанализировать конкретную дату и время, используя new Date(2023–06–28T10:30:00’).

Текст

JavaScript использует строки для представления текста в языке. Строка представляет собой неизменяемую упорядоченную последовательность 16-битных значений. Строка использует индексацию с отсчетом от нуля. Это означает, что первый символ строки равен 0, как и в массивах.

Строковые литералы играют решающую роль в представлении текста в коде JavaScript. Они лаконичны и эффективны для работы с текстовыми данными. В JavaScript строковые литералы могут быть объявлены с использованием одинарных (''), двойных ("") кавычек или обратных кавычек (`). Одинарные и двойные кавычки — это традиционный подход к определению строк. Например, «одинарный» и «двойной». JavaScript представил литералы шаблонов с использованием обратных кавычек (`) в ES6. Литералы шаблонов предлагают расширенные функции, такие как интерполяция строк и многострочные строки. Вот пример: «Меня зовут ${name}, и мне ${age} лет». Переменные name и age плавно интерполируются в строку с использованием синтаксиса ${}, что обеспечивает динамическую и выразительную композицию строк.

Escape-последовательности — это специальные комбинации символов, которые позволяют представлять определенные символы, которые сложно включить непосредственно в строку. Они обозначаются обратной косой чертой (), за которой следует определенный символ. Вот некоторые часто используемые escape-последовательности в JavaScript:

  • \' представляет одинарную кавычку в строке.
  • \ представляет собой двойную кавычку внутри строки.
  • \\ представляет обратную косую черту внутри строки.
  • \n представляет собой символ новой строки, создающий разрыв строки внутри строки.
  • \t представляет собой символ табуляции, добавляющий отступ внутри строки.

JavaScript имеет возможность работать с текстом. Чтобы объединить строки, вы можете использовать оператор +. Например, «Привет» + «Мир». Кроме того, при работе с === для каждого равенства и !== для неравенства. Подобно числам, вы можете использовать ‹, ›, ‹=, ›=. charAt(index): возвращает символ с указанным индексом в строке.

  • .charCodeAt(index): возвращает значение Unicode символа по указанному индексу в строке.
  • .concat(string1, string2, ..., stringN): объединяет две или более строк и возвращает новую объединенную строку.
  • .endsWith(searchValue, length): проверяет, заканчивается ли строка указанным значением поиска.
  • .includes(searchValue, position): проверяет, содержит ли строка указанное значение поиска.
  • .indexOf(searchValue, fromIndex): возвращает индекс первого вхождения указанного значения в строку.
  • .lastIndexOf(searchValue, fromIndex): возвращает индекс последнего вхождения указанного значения в строку.
  • .length: возвращает длину (количество символов) строки.
  • .replace(searchValue, replaceValue): заменяет указанное значение или регулярное выражение в строке новым значением.
  • .search(regexp): ищет строку с использованием регулярного выражения и возвращает индекс первого совпадения.
  • .slice(startIndex, endIndex): извлекает часть строки и возвращает новую строку.
  • .split(separator, limit): разбивает строку на массив подстрок на основе указанного разделителя.
  • .startsWith(searchValue, position): проверяет, начинается ли строка с указанного значения поиска.
  • .substr(startIndex, length): извлекает указанное количество символов из строки, начиная с указанного индекса.
  • .substring(startIndex, endIndex): извлекает символы между двумя указанными индексами в строке.
  • .toLowerCase(): преобразует строку в нижний регистр.
  • .toUpperCase(): преобразует строку в верхний регистр.
  • .trim(): удаляет пробелы с обоих концов строки.
  • .trimStart() или trimLeft(): удаляет пробелы в начале строки.
  • .trimEnd() или trimRight(): удаляет пробелы в конце строки.
  • padStart(targetLength, padString): заполняет начало строки указанным символом или строкой, пока не достигнет нужной длины.
  • padEnd(targetLength, padString): заполняет конец строки указанным символом или строкой, пока не достигнет нужной длины.

Литералы шаблонов в JavaScript, обозначаемые обратными кавычками (`…`), предлагают краткий синтаксис для создания строк. Они поддерживают интерполяцию строк, позволяя встраивать выражения и переменные с помощью заполнителей ${}. Литералы шаблонов также упрощают многострочные строки без необходимости явных разрывов строк, повышая читаемость кода и сокращая усилия по конкатенации.

Сопоставление шаблонов в JavaScript включает поиск определенных шаблонов или последовательностей в строках с использованием регулярных выражений. Регулярные выражения, обозначаемые косой чертой (/…/), предоставляют мощный способ определения и сопоставления шаблонов. Используя сопоставление с образцом, вы можете гибко и эффективно проверять ввод, извлекать информацию, заменять текст и выполнять различные задачи по обработке строк.

логический

Булевы значения в JavaScript — это фундаментальный тип данных, представляющий логические значения. Логическая переменная может иметь одно из двух возможных значений: true или false, что может означать включение или выключение, да или нет. Логические значения обычно используются в условных операторах, сравнениях и логических операциях для управления ходом программы и принятия решений. JavaScript также предоставляет логические операторы, такие как && (И), || (ИЛИ), и ! (НЕ) для объединения или инвертирования логических значений, что позволяет использовать более сложные логические выражения. У Boolean есть один полезный метод, который преобразует логическое значение в «true» или «false».

Логические значения необходимы для управления потоком выполнения в программах JavaScript, обеспечивая логику на основе условий и принятие решений. Они играют решающую роль в определении поведения и результатов различных операций и утверждений в программе. Часто используется в операторах if/else.

нулевой и неопределенный

В JavaScript null — это специальное значение, которое представляет преднамеренное отсутствие значения. Он часто используется для обозначения преднамеренного присвоения значения или отсутствия объекта, если использовать typeof для null, он вернет «object». Однако null считается членом своего собственного типа. Переменные, которым присвоено значение null, явно указывают на отсутствие значимого значения. Другие языки программирования имеют эквивалент null, например, NULL, nil или none.

В JavaScript undefined — это встроенное значение, указывающее на отсутствие значения или неинициализированную переменную. Он автоматически присваивается переменным, которые были объявлены, но не получили значения. Доступ к переменным или свойствам, которые не были определены или им не присвоено значение, также приводит к неопределенности.

Оператор == (нечеткое равенство) считает null и undefined равными друг другу, а также самим себе. С другой стороны, оператор === (строгое равенство) не считает null и undefined равными. Они бывают разных типов (null — это объект, а undefined — это undefined).

Символы

Символы — это уникальный примитивный тип данных, представленный в ECMAScript 2015 (ES6). Они используются для создания уникальных идентификаторов, которые гарантированно будут уникальными и неизменными. Символы часто используются в качестве ключей свойств в объектах, чтобы избежать конфликтов имен и обеспечить целостность процесса поиска свойств.

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