Единственный реальный вопрос, который я вижу: «Почему здесь добавляется 2».
document.cookie
выглядит так:
name1=value1;name2=value2;name3=value3...
Если name = "name2"
, start
будет индекс ;name2=
в этой строке, и мы хотим получить value2
.Чтобы перейти от начала этой строки к концу, мы добавляем длину name2
, а затем дополнительные 2
для символов ;
и =
.Теперь start
указывает сразу за символом =
, который является началом value
.
. После этого мы ищем следующий ;
символ и устанавливаем end
в его индекс.Если он не найден, мы устанавливаем его на dc.length
(у вас есть опечатка, dec
должно быть dc
).Тогда значение равно всему от start
до end
.