El objeto global de JavaScript

Los detalles del objeto global en JavaScript

JavaScript proporciona unaobjeto globalque tiene un conjunto de propiedades, funciones y objetos a los que se accede globalmente, sin un espacio de nombres.

Las propiedades son:

  • Infinity
  • NaN
  • undefined

Las funciones son:

  • decodeURI()
  • decodeURIComponent()
  • encodeURI()
  • encodeURIComponent()
  • eval()
  • isFinite()
  • isNaN()
  • parseFloat()
  • parseInt()

Estos son los objetos:

y errores:

  • Error
  • EvalError
  • RangeError
  • ReferenceError
  • SyntaxError
  • TypeError
  • URIError

Describo errores en estoReferencia de errores de JavaScriptcorreo.

Ahora describamos aquí las propiedades y funciones globales.

Infinity

Infinityen JavaScript es un valor que representainfinito.

Infinito positivo. Para obtener infinito negativo, use eloperador:-Infinity.

Son equivalentes aNumber.POSITIVE_INFINITYyNumber.NEGATIVE_INFINITY.

Añadiendo cualquier número aInfinityo multiplicarInfinitypara cualquier número, todavía daInfinity.

NaN

Lo globalNaNvalor es un acrónimo deNot a Number. Se devuelve mediante operaciones como cero dividido por cero, operaciones parseInt () no válidas u otras operaciones.

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

Una cosa especial a considerar es que unNaNel valor nunca es igual a otroNaNvalor. Debes usar elisNaN()función global para comprobar si un valor se evalúa comoNaN:

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

undefined

Lo globalundefinedla propiedad tiene el valor primitivoundefined.

Ejecutar una función que no especifica un valor de retorno devuelveundefined:

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

a diferencia deNaN, podemos comparar unundefinedvalor conundefinedy hazte realidad:

undefined === undefined

Es común usar eltypeofoperador para determinar si una variable no está definida:

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

}

decodeURI()

Realiza la operación opuesta deencodeURI()

decodeURIComponent()

Realiza la operación opuesta deencodeURIComponent()

encodeURI()

Esta función se utiliza para codificar una URL completa. Codifica todos los caracteres en sus entidades HTML, excepto los que tienen un significado especial en una estructura de URI, incluidos todos los caracteres y dígitos, más esos caracteres especiales:

[email protected]#{{content}}amp;*()=:/,;?+-_.

Ejemplo:

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

encodeURIComponent()

Similar aencodeURI(),encodeURIComponent()está destinado a tener un trabajo diferente.

En lugar de utilizarse para codificar un URI completo, codifica una parte de un URI.

Codifica todos los caracteres en sus entidades HTML, excepto los que tienen un significado especial en una estructura de URI, incluidos todos los caracteres y dígitos, más esos caracteres especiales:

-_.!~*'()

Ejemplo:

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

eval()

Esta es una función especial que toma una cadena que contiene código JavaScript y la evalúa / ejecuta.

Esta función se usa muy raramente y por una razón: puede ser peligrosa.

Recomiendo leerEste artículosobre el tema.

isFinite()

Devuelve verdadero si el valor pasado como parámetro es finito.

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

isNaN()

Devuelve verdadero si el valor pasado como parámetro se evalúa comoNaN.

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

Esta función es muy útil porqueNaNel valor nunca es igual a otroNaNvalor. Debes usar elisNaN()función global para comprobar si un valor se evalúa comoNaN:

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

parseFloat()

Me gustaparseInt(),parseFloat()se utiliza para convertir un valor de cadena en un número, pero conserva la parte decimal:

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()

Esta función se utiliza para convertir un valor de cadena en un número.

Otra buena solución para los números enteros es llamar alparseInt()función:

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

No olvide el segundo parámetro, que es la base, siempre 10 para números decimales, o la conversión podría intentar adivinar la base y dar resultados inesperados.

parseInt()intenta obtener un número de una cadena que no solo contiene un número:

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

pero si la cadena no comienza con un número, obtendráNaN(No un número):

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

Además, al igual que Number, no es confiable con separadores entre los dígitos:

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  ✅

Más tutoriales de js: