2011-11-19 11 views
7

Dado que las personas están a menudo utilizando¿Puede array.length estar por debajo de 0 en Javascript?

array.length < 1 

para comprobar si una matriz está vacía en lugar de

array.length === 0 

Me pregunto si hay casos Array.length podría estar por debajo de 0.

+2

Su pregunta es incompleta. No te olvides de anotar fracciones de longitud, como 0.5;) – hugomg

+0

@missingno: Seguí adelante y respondí esa parte, también. ;-) –

Respuesta

10

No, de acuerdo con the specification, length de una matriz es no negativo entero:

Cada objeto Array tiene una propiedad length cuyo valor es siempre un entero no negativo menor que 2^.

Cualquiera de las dos está perfectamente bien, y ambas tendrán los mismos resultados para todas las matrices.

Usted puede encontrar personas discutiendo para === 0 sobre < 1 por motivos de rendimiento, ya que === falla antes de tiempo si los tipos de sus operandos no coinciden, mientras < trata de hacer conversión de tipos. Pero eso es irrelevante aquí; los tipos coinciden. No tengo conocimiento de que ninguno de los dos sea más rápido que el otro en este caso de uso (y lo he probado, lamentablemente jsPerf no funciona, por lo que no puedo publicar la prueba), pero incluso si lo fuera, tiene que estar haciendo la comparación literalmente billones de veces para ver incluso el impacto más pequeño en el mundo real.

+0

Gracias por esta gran respuesta. – AlexMA

Cuestiones relacionadas