Calcular el tamaño de una cadena de JavaScript en bytes
La pregunta gira en torno a determinar el tamaño de una cadena de JavaScript en bytes. Con una cadena codificada en UTF-8 recibida del servidor que mide aproximadamente 500 K, la investigación explora los factores que influyen en el tamaño de la cadena, incluido el uso de UCS-2 en JavaScript, posibles variaciones en las implementaciones de JavaScript y el impacto de la codificación de la página o el tipo de contenido. .
Determinación del tamaño de cadena en JavaScript
Para obtener el tamaño de una cadena en bytes, se puede emplear el objeto Blob. El constructor Blob toma una matriz que contiene la cadena que se va a medir. La propiedad de tamaño del objeto Blob resultante proporciona el tamaño en bytes.
Ejemplos de cálculo del tamaño de cadena de JavaScript
Para fines ilustrativos, a continuación se muestran algunos ejemplos de cadena tamaños calculados utilizando el objeto Blob:
console.info(
new Blob(['?']).size, // 4
new Blob(['?']).size, // 4
new Blob(['??']).size, // 8
new Blob(['??']).size, // 8
new Blob(['I\'m a string']).size, // 12
// from Premasagar correction of Lauri's answer for
// strings containing lone characters in the surrogate pair range:
// https://stackoverflow.com/a/39488643/6225838
new Blob([String.fromCharCode(55555)]).size, // 3
new Blob([String.fromCharCode(55555, 57000)]).size // 4 (not 6)
);
Factores adicionales a considerar
Si bien JavaScript emplea principalmente UCS-2, ciertas implementaciones pueden desviarse de este estándar. Además, la codificación de la página y el tipo de contenido pueden influir en la representación del tamaño de la cadena. Es importante verificar con la implementación de JavaScript específica y el entorno del navegador para detectar posibles variaciones.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3