JavaScript глобальные функции и свойства

В этом разделе описаны глобальные значения и функции ECMAScript, доступные по имени без указания объекта. Конструкторы и объекты, например Array, Number и JSON, рассматриваются в отдельных разделах. Возможности среды, например window (объект окна браузера), не входят в этот список. Встроенного объекта с именем Global нет.

Глобальные свойства

Глобальные свойства и функции
Свойство Описание
globalThis Свойство, через которое доступно глобальное значение this независимо от среды. Например, globalThis.isNaN даёт доступ к глобальной функции.
Infinity Положительная числовая бесконечность; отрицательная записывается как -Infinity.
NaN Является значением, представляющим не число (англ. Not-a-Number).
undefined Значение отсутствующего результата: например, у переменной без присвоенного значения. Это глобальное свойство, доступное только для чтения.

Глобальные Infinity, NaN и undefined доступны только для чтения. Объявления let и const на верхнем уровне не становятся свойствами globalThis.

Глобальные функции

Глобальные свойства и функции
Функция Описание
eval() Выполняет строку как код JavaScript и возвращает результат последнего вычисленного выражения либо undefined. Прямой вызов может обращаться к локальным переменным; непрямой выполняется в глобальной области. Не используйте для разбора JSON и непроверенных данных.
isFinite() Преобразует аргумент в число и возвращает true, если оно конечное. Например, isFinite("10") даёт true. Number.isFinite() проверяет число без преобразования.
isNaN() Сначала преобразует аргумент в число, затем проверяет результат на NaN. Для проверки без преобразования используйте Number.isNaN().
parseFloat() Преобразует аргумент в строку и читает начальную часть как десятичное число, допускает дробь и экспоненту. Например, parseFloat("12.5px") возвращает 12.5; если число не начинается — NaN. Совпадает с Number.parseFloat().
parseInt() Преобразует аргумент в строку и читает целое число в указанной системе счисления. Например, parseInt("12px", 10) возвращает 12; если разбор невозможен — NaN. Основание лучше задавать явно. Совпадает с Number.parseInt().
decodeURI() Декодирует URI (англ. Uniform Resource Identifier – унифицированный идентификатор ресурса), ранее созданный функцией encodeURI(), или другим подобным способом.
decodeURIComponent() Декодирует управляющие последовательности символов в компоненте URI (англ. Uniform Resource Identifier – унифицированный идентификатор ресурса), ранее созданный encodeURIComponent(), или другим подобным способом.
encodeURI() Кодирует URI (адрес ресурса), сохраняя его разделители, например :, / и ?. Возвращает строку; пробелы и кириллица записываются последовательностями %XX для байтов UTF-8.
encodeURIComponent() Кодирует отдельный компонент URI, например значение параметра запроса. Возвращает строку с последовательностями %XX, в том числе для разделителей &, = и #.

Устаревшие функции

Устаревшие глобальные функции
Функция Описание
escape() Устарело Возвращает строку с устаревшим кодированием в виде %XX и %uXXXX. Это не UTF-8-кодирование URI. Для новых адресов используйте encodeURI() или encodeURIComponent() по назначению.
unescape() Устарело Декодирует старый формат escape(). Не является заменой decodeURIComponent(): функции рассчитаны на разные форматы.

Эти функции сохранены для совместимости в приложении B ECMAScript; вне браузеров их наличие не гарантируется.

Спецификация

ECMAScript — глобальный объект.

Сравните преобразование и разбор строки в примере проверки чисел.

Примеры, попробуйте сами

Чем разбор числа отличается от проверки значения

Измените строку 12.5px. Сравните преобразование всей строки, разбор её начала и проверку конечности.

index.html
HTML
<p>Результат выполнения выводится в консоль.</p>
main.js
JavaScript
console.log(globalThis.isNaN === isNaN) // true
console.log(Number('12.5px')) // NaN
console.log(parseFloat('12.5px')) // 12.5
console.log(parseInt('12.5px', 10)) // 12
console.log(isFinite('10')) // true
console.log(Number.isFinite('10')) // false
console.log(isNaN('текст')) // true
console.log(Number.isNaN('текст')) // false
console.log(typeof undefined, typeof null) // undefined object