"If a worker wants to do his job well, he must first sharpen his tools." - Confucius, "The Analects of Confucius. Lu Linggong"
Front page > Programming > How Can I Determine the Byte Size of a JavaScript String?

How Can I Determine the Byte Size of a JavaScript String?

Published on 2024-11-04
Browse:645

How Can I Determine the Byte Size of a JavaScript String?

Calculating the Size of a JavaScript String in Bytes

The question revolves around determining the size of a JavaScript string in bytes. With a UTF-8 encoded string received from the server measuring approximately 500K, the inquiry explores factors influencing the string size, including the use of UCS-2 in JavaScript, potential variations in JavaScript implementations, and the impact of page encoding or content-type.

Determining String Size in JavaScript

To obtain the size of a string in bytes, the Blob object can be employed. The Blob constructor takes an array containing the string to be measured. The size property of the resulting Blob object then provides the size in bytes.

Examples of JavaScript String Size Calculation

For illustration purposes, here are a few examples of string sizes calculated using the Blob object:

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)
);

Additional Factors to Consider

While JavaScript primarily employs UCS-2, certain implementations may deviate from this standard. Additionally, the page encoding and content-type can influence the string's size representation. It's important to verify with the specific JavaScript implementation and browser environment for any potential variances.

Release Statement This article is reprinted at: 1729293498 If there is any infringement, please contact [email protected] to delete it
Latest tutorial More>

Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.

Copyright© 2022 湘ICP备2022001581号-3