Sé muy bien que nulo e indefinido son distintos en JavaScript. Sin embargo, no puedo decidir si uso o no ese hecho cuando mis propias funciones son aprobadas como argumento.Manejando la distinción entre parámetros indefinidos y nulos en JavaScript
O, expresado de una manera diferente, ¿debería myFoo(undefined)
devolver lo mismo que myFoo(null)
?
O, en otro caso, ya que myBar(1, 2, 3)
es (casi) lo mismo que myBar(1, 2, 3, undefined, undefined)
, debe volver myBar(1, 2, 3, null, null)
lo mismo que myBar(1, 2, 3)
?
Creo que hay un potencial de confusión en ambos casos y que una biblioteca probablemente debería seguir una convención cuando se maneje nulo/indefinido.
Realmente no estoy pidiendo opiniones personales (así que por favor exprese ésas como comentarios en lugar de respuestas). Pregunto si alguien sabe si hay una mejor práctica a la que se debe apegar cuando se trata de manejar esta distinción. ¡Las referencias a fuentes externas son bienvenidas!
'myBar (1, 2, 3)' no es lo mismo que 'myBar (1, 2, 3, undefined, undefined)': el objeto 'arguments' tendrá una longitud de 3 en el primer caso y 5 en el segundo. –
Ah, buen punto. Entonces supongo que es lo mismo si recibo explícitamente cinco parámetros y los uso ignorando el objeto 'arguments'. – Jakob