这将取决于您的字符编码。如果您使用 ASCII 编码,它将是 str.length 个字节。如果您使用 UTF-16,它将是 (str.length * 2) 个字节。如果您使用 UTF-8,它将取决于字符串中的字符。(有些字符只占用 1 个字节,但其他字符最多占用 4 个字节。)如果您正在处理 Base64 编码的数据,这些字符都在 ASCII 范围内,因此会占用磁盘上的 str.length 个字节。如果您先将它们解码并保存为二进制文件,则需要 (str.length * 3/4) 个字节。(使用 Base64,3 个未编码字节变为 4 个编码字节。)
顺便说一句 - 如果您还没有阅读 Joel Spolsky 的The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!),您应该立即阅读。
http://www.joelonsoftware.com/articles/Unicode.html
更新:如果您使用 localStorage,我假设您熟悉 window.localStorage.length,尽管这只会告诉您已使用了多少,而不是您的新数据是否适合。我还强烈推荐阅读Dive into HTML5,尤其是关于存储的部分:
http://diveintohtml5.ep.io/storage.html
除非自编写以来发生了某些变化,否则我不确定您可以做什么,因为 localStorage 将每个域限制为 5MB,而用户无法增加它。