Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

168
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!