Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

178
Vistas
¿Cómo establecer el valor predeterminado de un parámetro de una función cuando es 'indefinido' o 'nulo' o '(cadena vacía)?

colorX es mi parámetro de alguna función.

 colorX = typeof colorX !== ('undefined' || 'null' || '') ? colorX : 'abc';

Aquí para 'indefinido' obtengo abc como valor. Pero cuando paso una cadena nula o 'nula' o vacía como entrada de parámetro. me sale error

Además, ¿cuál es la diferencia entre nulo y 'nulo'?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Explicación

null vs 'null'

Cuando se usa typeof , espera una versión de cadena del tipo, como 'undefined' , 'function' , 'bigint' , etc. Sin embargo, específicamente para el tipo null , funciona como un objeto:

 console.log(typeof null); // expected output: object console.log(typeof 'strExample'); // expected output: string // We can return a boolean by doing so: let variable = 10; console.log(typeof variable === 'string'); // expected output: false

La explicación de por qué se puede encontrar en MDN :

En la primera implementación de JavaScript, los valores de JavaScript se representaban como una etiqueta de tipo y un valor. La etiqueta de tipo para los objetos era 0 . null se representó como el puntero NULL ( 0x00 en la mayoría de las plataformas). En consecuencia, null tenía 0 como etiqueta de tipo, de ahí el typeof de valor de retorno "object" . ( referencia )

Se propuso una solución para ECMAScript (a través de una suscripción), pero fue rechazada . Habría resultado en typeof null === 'null' .

En cualquier otro escenario, 'null' , 'undefined' y 'string' se identificarían como cadenas ya que están rodeadas de '' 's, donde esto es a lo que se refería @reyno.

Vea todos los valores aceptados para typeof aquí .

Comprobación de nulo

 // null will be identified as an "object" type; checking // null with typeof is redundant as {} can be the same as null. console.log(typeof null); // expected output: object console.log(typeof {}); // expected output: object // so we can just do: let colorX = null; console.log(colorX === null); // expected output: true

Código resultante

Dado que los valores falsos pueden ser cualquiera de estos:

Además de false , las posibles expresiones falsas son: null , NaN , 0 , la cadena vacía ( "" ) y undefined .

MDN

Simplemente podemos hacer:

 colorX = colorX || 'abc';

Como afirma @ivar.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Usando el operador ternario podría simplemente hacer esto para

 colorX = colorX ? colorX : 'abc';

La sintaxis del operador condicional (ternario) es

 condition ? exprIfTrue : exprIfFalse

y de acuerdo con los documentos de MDN

... nulo, NaN, 0, la cadena vacía ("") e indefinido. Si condition es cualquiera de estos, el resultado de la expresión condicional será el resultado de ejecutar la expresión exprIfFalse.

Pero alternativamente e incluso más corto (en caso de que esté verificando todos los valores 'falsos'), también puede usar el OR lógico

 colorX = colorX || 'abc';

Como dice que desea verificar todos los valores falsos excepto 0, puede combinar ambos

 let v = 0 v = v || v === 0 ? v : 'value' console.log(v) // 0

Darse cuenta de

 null, undefined, 0

con comillas simplemente se convierten en cadenas que contienen los caracteres sin "significado funcional"

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda