es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Se implementa realmente una matriz de enteros como una matriz de enteros en JavaScript / V8?

Hay una afirmación en este artículo que indica que un array de enteros en JavaScript está implementado por un array de enteros en C++.

Sin embargo, según MDN, a menos que se utilice específicamente BigInts, en JavaScript todos los números se representan como doubles.

Si hago lo siguiente:

const arr = [0, 1, 2, 3];

¿Cuál es la representación real en el motor V8?

El código de V8 está aquí en GitHub, pero no sé dónde buscar.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    La afirmación en el artículo citado de que un array de números enteros en JavaScript está implementado por un array de números enteros en C++ no es completamente precisa. Según MDN, todos los números en JavaScript se representan como números de punto flotante dobles, a menos que se utilicen explícitamente números enteros grandes (BigInts). Por lo tanto, si creas un array de enteros en JavaScript, como const arr = [0,1,2,3], la representación real en el motor V8 sería un array de números de punto flotante de doble precisión. En cuanto a dónde buscar en el código del motor V8, el archivo builtins-array.cc podría proporcionar algunas ideas sobre la implementación de arrays en V8.

Comments are closed.