space octal/hex 与 ascii 的区别在 JavaScript 文件中

The difference in space octal/hex vs. ascii takes up in JavaScript file

所以字母a十进制是97,十六进制是61,八进制是141。你可以这样写 JavaScript:

var octal = [ '1', '1', '1' ]
var hex   = [ '\x61', '\x61', '\x61' ]
var ascii = [ 'a', 'a', 'a' ]

它们的结果都是一样的:

console.log(octal) //=> ["a", "a", "a"]
console.log(hex)   //=> ["a", "a", "a"]
console.log(ascii) //=> ["a", "a", "a"]

但是,我想知道的第一部分是,它们实际上是不同数量的 ASCII 字符定义

'1' (4)
'\x61' (4)
'a'    (1)

我想知道如果你用八进制或十六进制定义一大块文本,它实际上会占用文件中 space 数量的 4 倍。因此,如果您从 /api/resources.json 以八进制形式返回 JSON 响应,则响应的大小将是您返回 ASCII 时的 4 倍。也就是对此的回应:

'111111111111....'

相对于对此的回应:

'aaaaaaaaaaa....'

所以我不确定它是否真的使文件 size/response 变大了(可能是个愚蠢的问题,但这个 encoding stuff 很难)。只是想确保,是的​​,它将占用更多 space,因为看起来就是这样。所以基本上,在 JavaScript 文件中写入 "raw hex/octal" 会导致它变得比 ASCII 更大。

js 文件存储文本,你写的越多文件越大。

这对于编译语言来说不是问题,因为源代码的目的是生成一些语法语义合理化的其他语言(中间语言、字节码等)。

javascript 为浏览器编写的文件在分发之前不会编译,因此文件大小可能是性能方面需要考虑的一个因素。

所以这真的取决于你写作的目的 javascript...

如果您是为 NodeJs 运行 时间环境编写它,则性能差异可以忽略不计。

如果您使用来自网络服务器的 js 文件提供使用十六进制字符表示法定义的大字符串,您可以稍微减少加载时间。