¿Por qué javascript prefiere devolver un String
sobre cualquier otra opción?return String vs Integer vs undefined vs null
Considere el siguiente fragmento.
var arr = ['Hello1', 'Hello2', 'Hello3'];
Array.prototype.item = function(x) {
return this[x] || null || 'aïe' || 12 || undefined ;
};
console.log(arr.item(43)); // returns aïe
I llamados intencionalmente un elemento de matriz inexistente.
Sin embargo, no puedo entender por qué arr.item(43)
devuelve el String
? ¿Por qué no null
o undefined
o incluso 12
?
¡Salud! Perfectamente claro :) – Pierre
Solo un pequeño detalle, el '||' devuelve la última expresión evaluada. En cuyo caso, cuando uno es * truthy *, devolverá eso. – alex
@alex: Hmmm ... sí, pero la primera expresión "verídico" * es * la última evaluada. Tal vez no hice hincapié en el cortocircuito de manera explícita. Voy a actualizar. –