Это будет зависеть от вашей кодировки символов.Если вы используете кодировку ASCII, это будут байты str.length.Если вы используете UTF-16, это будет (str.length * 2) байтов.Если вы используете UTF-8, это будет зависеть от символов в строке.(Некоторые символы занимают только 1 байт, а другие могут занимать до 4 байт.) Если вы работаете с данными в кодировке Base64, все символы находятся в диапазоне ASCII и поэтому занимают байты str.length на диске.Если вы сначала декодируете их и сохраняете в двоичном виде, это займет (str.length * 3/4) байтов.(С Base64 3 некодированных байта становятся 4 закодированными байтами.)
BTW - Если вы не читали Джоэла Спольски "Абсолютный минимум каждого разработчика программного обеспечения, абсолютно, положительно должен знать о Unicode и наборах символов (нетИзвините!) , вы должны сделать это немедленно.
http://www.joelonsoftware.com/articles/Unicode.html
ОБНОВЛЕНИЕ: Если вы используете localStorage, я предполагаю, что вы знакомы с window.localStorage.lengthхотя это только говорит о том, сколько было использовано, а не о том, подойдут ли ваши новые данные.Я также настоятельно рекомендую прочитать Погружение в HTML5 , особенно раздел о хранилище:
http://diveintohtml5.ep.io/storage.html
Если что-то не изменилось с момента его написания, я не уверенчто вы можете сделать, так как localStorage ограничивает вас 5 МБ на домен, и у пользователя нет возможности его увеличить.