如何使用 TypeScript 确定一串代码中有多少千字节?
How do I determine how many kilobytes there are in a string of code using TypeScript?
假设我有以下 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 KB 的偏差。
我做错了什么,我应该使用 1000
字节来表示千字节而不是 1024
吗?
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`);
假设我有以下 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 KB 的偏差。
我做错了什么,我应该使用 1000
字节来表示千字节而不是 1024
吗?
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`);