Рубрики
Без рубрики

Глобальный объект JavaScript

Сведения о глобальном объекте в JavaScript

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

Свойства являются:

  • Бесконечность
  • бабушка
  • не определено

Функции заключаются в следующем:

  • декодиРУЙ()
  • Декодирующий компонент()
  • Кодировка()
  • Кодирующий компонент()
  • оценка()
  • бесконечный()
  • исНаН()
  • Парсефлот()
  • Синтаксический анализ()

Это объекты:

  • Массив
  • Логический
  • Дата
  • Функция
  • JSON
  • Математика
  • Номер
  • Объект
  • Регулярное выражение
  • Строка
  • Символ

и ошибки:

  • Ошибка
  • Ошибка оценки
  • Ошибка диапазона
  • Ошибка ссылки
  • Синтаксическая ошибка
  • Ошибка типа
  • Ошибка Url

Я описываю ошибки в этом справочном посте об ошибках JavaScript.

Давайте теперь опишем здесь глобальные свойства и функции.

Бесконечность

Бесконечность в JavaScript – это значение, которое представляет бесконечность .

Положительная бесконечность. Чтобы получить отрицательную бесконечность, используйте оператор : - Бесконечность .

Они эквивалентны Числу. ПОЛОЖИТЕЛЬНАЯ_ИНФИНИТНОСТЬ и Номер. ОТРИЦАТЕЛЬНАЯ_ИНФИНИТНОСТЬ .

Добавление любого числа в Бесконечность , или умножение Бесконечность для любого числа все равно дает Бесконечность .

бабушка

Глобальное значение NaN является аббревиатурой , а не числом . Он возвращается такими операциями, как деление нуля на ноль, недопустимые операции parseInt() или другие операции.

parseInt()    //NaN
parseInt('a') //NaN
0/0           //NaN

Особая вещь, которую следует учитывать, заключается в том, что Значение NaN никогда не равно другому значению NaN . Вы должны использовать глобальную функцию isNaN() , чтобы проверить, соответствует ли значение NaN :

NaN === NaN //false
0/0 === NaN //false
isNaN(0/0)  //true

не определено

Глобальное неопределенное свойство содержит примитивное значение неопределенное .

Выполнение функции, которая не указывает возвращаемое значение, возвращает неопределенное :

const test = () => {}
test() //undefined

В отличие от NaN , мы можем сравнить неопределенное значение с неопределенным и получить значение true:

undefined === undefined

Обычно используется оператор typeof , чтобы определить, является ли переменная неопределенной:

if (typeof dog === 'undefined') {

}

декодиРУЙ()

Выполняет противоположную операцию encodeURI()

Декодирующий компонент()

Выполняет противоположную операцию encodeURIComponent()

Кодировка()

Эта функция используется для кодирования полного URL-адреса. Он кодирует все символы в их HTML-сущности, за исключением тех, которые имеют особое значение в структуре URI, включая все символы и цифры, плюс эти специальные символы:

~!@#$&*()=:/,;?+-_.

Пример:

encodeURI("http://flaviocopes.com/ hey!/")
//"http://flaviocopes.com/%20hey!/"

Кодирующий компонент()

Аналогично encodeURI() , encodeURIComponent() предназначен для выполнения другой работы.

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

Он кодирует все символы в их HTML-сущности, за исключением тех, которые имеют особое значение в структуре URI, включая все символы и цифры, плюс эти специальные символы:

-_.!~*'()

Пример:

encodeURIComponent("http://www.example.org/a file with spaces.html")
// "http%3A%2F%2Fwww.example.org%2Fa%20file%20with%20spaces.html"

оценка()

Это специальная функция, которая принимает строку, содержащую код JavaScript, и вычисляет/запускает ее.

Эта функция используется очень редко и по определенной причине: она может быть опасной.

Я рекомендую прочитать эту статью на эту тему.

бесконечный()

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

isFinite(1)                        //true
isFinite(Number.POSITIVE_INFINITY) //false
isFinite(Infinity)                 //false

исНаН()

Возвращает значение true, если значение, переданное в качестве параметра, равно NaN .

isNaN(NaN)        //true
isNaN(Number.NaN) //true
isNaN('x')        //true
isNaN(2)          //false
isNaN(undefined)  //true

Эта функция очень полезна, потому что значение NaN никогда не равно другому значению NaN . Вы должны использовать глобальную функцию isNaN() , чтобы проверить, соответствует ли значение NaN :

0/0 === NaN //false
isNaN(0/0)  //true

Парсефлот()

Как parseInt() , parseFloat() используется для преобразования строкового значения в число, но сохраняет десятичную часть:

parseFloat('10,000', 10) //10     ❌
parseFloat('10.00', 10)  //10     ✅ (considered decimals, cut)
parseFloat('10.000', 10) //10     ✅ (considered decimals, cut)
parseFloat('10.20', 10)  //10.2   ✅ (considered decimals)
parseFloat('10.81', 10)  //10.81  ✅ (considered decimals)
parseFloat('10000', 10)  //10000  ✅

Синтаксический анализ()

Эта функция используется для преобразования строкового значения в число.

Другим хорошим решением для целых чисел является вызов функции parseInt() :

const count = parseInt('1234', 10) //1234

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

parseInt() пытается получить число из строки, которая содержит не только число:

parseInt('10 lions', 10) //10

но если строка не начинается с числа, вы получите NaN (Не число):

parseInt("I'm 10", 10) //NaN

Кроме того, так же, как и номер, он ненадежен с разделителями между цифрами:

parseInt('10,000', 10) //10     ❌
parseInt('10.00', 10)  //10     ✅ (considered decimals, cut)
parseInt('10.000', 10) //10     ✅ (considered decimals, cut)
parseInt('10.20', 10)  //10     ✅ (considered decimals, cut)
parseInt('10.81', 10)  //10     ✅ (considered decimals, cut)
parseInt('10000', 10)  //10000  ✅

Оригинал: “https://flaviocopes.com/javascript-global-object/”