Вход

Просмотр полной версии : Длина строки в javascript.


AKS
27.09.2007, 14:48
ECMAScript Programming Language Specification умалчивает о том, какая может быть максимально допустимая длина строки. Кто-нибудь, когда-нибудь и где-нибудь читал хоть что-нибудь об этом?

kop
27.09.2007, 18:05
ECMAScript Programming Language Specification умалчивает о том, какая может быть максимально допустимая длина строки. Кто-нибудь, когда-нибудь и где-нибудь читал хоть что-нибудь об этом?

Длинна строки чего: кода или выводимой на экран информации?

AKS
27.09.2007, 18:42
Длинна строки чего: кода или выводимой на экран информации?
Длина литерала:
var str = 'aaaaaaaaaaaaaaa.......aa'; // maximum characters length is?..

kop
27.09.2007, 20:40
Если я не ошибаюсь, то как и в других языках -255 символов.

AKS
27.09.2007, 21:04
Если я не ошибаюсь, то как и в других языках -255 символов.
Ошибаетесь, к сожалению. Вот простенький тест, выполнив который в браузерах IE/FF/Opera, можно убедиться, что строка, длинной в 1000 символов, легко создается, и при этом позволяет выполнять строковые операции (все это в течении 0 мс):
var start = new Date;
var length = 1000;
var str = '';
while (length--) {
str += 'a';
};

alert([str.length, str.substr(999),
str.lastIndexOf('a'), new Date - start]);

Vyazovoi
27.09.2007, 21:16
если в спецификации ни слова и учитывая что скрипт исполняется браузером - можно предположить что зависит от конкретного браузера :)

Вобще очень интересный вопрос, может стоит посмотреть в документации, ну например по движку gecko?

kop
27.09.2007, 21:24
Учитывая то, что JavaScript назвать полноценным языком программирования нельзя, то можно предположить, что ему по барабану на длинну строки.

Хотя нужно признать, что вопрос действительно очень интересный.

AKS
27.09.2007, 21:28
... JavaScript назвать полноценным языком программирования нельзя...
Это еще почему?

klling
28.09.2007, 03:38
а вы проведите эксперимент в файрфоксе запустите такой скриптик:

<script language = "javascript">

q = "a";

for (f=0;f<255;f++) {
q = q + q;
document.write (f+' : '+q+'<br>');
};

</script>

правда подвиснет на некоторое время :)
но у меня он выдал

Ошибка: out of memory
Источник: file:///1.html
Строка: 6

то есть увеличивал строку до тех пор пока память не кончилась.

видимо длина строки ограничивается только ресурсом памяти.

AKS
28.09.2007, 08:19
а вы проведите эксперимент...
Эксперимент - это хорошо. Но вопросов он не убавляет, а прибавляет. Вот, в частности:
...видимо длина строки ограничивается только ресурсом памяти.
"Ресурсом памяти" - какой именно памяти?

Rambler's Top100