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
<p>Результат выполнения выводится в консоль.</p>
main.js
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