¿Alguien puede explicarme cómo se evaluaron los resultados de lo siguiente?Además de objetos y matrices
{} + {} // NaN
[] + {} // "[object Object]"
{} + [] // 0
[] + [] // ""
¿Alguien puede explicarme cómo se evaluaron los resultados de lo siguiente?Además de objetos y matrices
{} + {} // NaN
[] + {} // "[object Object]"
{} + [] // 0
[] + [] // ""
Aquí hay una explicación completa de esto, check it.
y fichas{} + {}
ser NaN
si se ejecuta directamente en la consola porque {}
se piensa de un bloque en lugar de un objeto.
({}+{})
debe ser '[object Object][object Object]'
El resultado real es:
console.log({}+{}) // '[object Object][object Object]'
console.log([]+{}) // '[object Object]'
console.log({}+[]) // '[object Object]'
console.log([]+[]) // ''
Adición de matrices con cualquier objeto y su representación de cadena siempre resulta en una unión
Por ejemplo:
[1] + [2] // is merged to "12", so [] + [] is an empty string ""
Lo mismo es igual para su segundo ejemplo
['test'] + {} // "test[object Object]"
lo tanto una matriz vacía, más un objeto vacío se acaba de devolver un [object Object]
para añadir a los objetos vacíos es fácil también:
Evaluar un objeto vacío simple: {} // results in undefined
Y agregar dos valores undefined
es NaN
porque no hay forma de que pueda agregarlos.
Nota: Los valores de retorno dependen de la implementación de JavaScript (es decir, en qué navegador o Medio Ambiente)
también: What is {} + {} in JavaScript?
{} + {}
no se puede hacer una adición o cualquier operación en dos objetos
[] + {} // "[object Object]"
es solo un concat entre una cuerda y un objeto, tiene la misma resu lt con alert({});
{} + [] // 0
mismo
[] + [] // ""
concat de dos cadena vacía = cadena vacía.
Creo que '{} + []' es realmente '" 0 "' (una cadena) no '0' (un número). – DaoWen
@DaoWen, en realidad es un Entero '0' – Adi
no señor, es un número entero, pruébelo en la consola de cromos si quiere .. – Hilmi