Как определить, сколько килобайт в строке кода, используя TypeScript? - PullRequest
1 голос
/ 02 мая 2019

Допустим, у меня есть следующий код TypeScript (представленный в виде строки):

function greet(name: string): void {
  console.log(`Hello ${name}!`);
}

Как мне программно определить, сколько килобайт содержится в этой строке?

В настоящее время я использую следующее уравнение:

// NOTE: "string.length" represents the number of bytes in the string
const KB: number = (string.length / 1024).toFixed(2);

Проблема в том, что число часто кажется слишком большим или слишком маленьким, чтобы быть правильным.

Когда я помещаю строку в пустой файл и сохраняю ее, свойства моего файлового менеджера выводят совершенно другой размер, иногда он отключается на 2-20 КБ.

Что я делаю не так, должен ли я использовать 1000 байтов для представления килобайта вместо 1024?

1 Ответ

2 голосов
/ 02 мая 2019

Символ в строке JavaScript кодируется с использованием Unicode, каждый движок имеет свой собственный набор символов, наиболее популярным из которых является UTF-16. Следовательно, каждый символ содержит 2 bytes данных. Чтобы найти общее число kilobytes, используемое строкой, найдите число используемых bytes и разделите его на 1024

const string = "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc";

const b = string.length * 2;
const kb = (b / 1024).toFixed(2);

console.log(`${kb}KB`);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...