Форум hotibo.ru

Сайты - по стандартам, но не стандартные сайты!






#1 02.03.2011 08:49

Archi
Новичок
Зарегистрирован: 02.03.2011
Сообщений: 3

Вопрос по JavaScript (последовательность операций, наверное)

Не то, чтобы это было сильно где-то нужно... Просто изучаю JavaScript...
Вот такой код:

Все броузеры (в которых я смотрю) выдают ошибку.
При этом вот так:

все всё воспринимают нормально. Почему?

Нет на форуме

 

#2 02.03.2011 09:34

alemiks
Опытный
Откуда: Voronezh
Зарегистрирован: 09.04.2010
Сообщений: 256
Вебсайт

Re: Вопрос по JavaScript (последовательность операций, наверное)

операторы инкремента (декремента) применяются только к переменным, элементам массива и свойствам объектов

Нет на форуме

 

#3 02.03.2011 11:38

ober
Новичок
Зарегистрирован: 02.03.2011
Сообщений: 20

Re: Вопрос по JavaScript (последовательность операций, наверное)

Да да, не очень приятная особенность.
был соблазн записать одной строкой вот так:

Код:

document.getElementById('some_count').innerHTML = (document.getElementById('some_count').innerHTML)++;

естественно, это не работает.

Пришлось раскладывать:

Код:

some_counter = document.getElementById('some_count').innerHTML;
some_counter++;
document.getElementById('some_count').innerHTML = some_counter;

Нет на форуме

 

#4 02.03.2011 12:34

alemiks
Опытный
Откуда: Voronezh
Зарегистрирован: 09.04.2010
Сообщений: 256
Вебсайт

Re: Вопрос по JavaScript (последовательность операций, наверное)

ober написал:

естественно, это не работает.

начните с основ языка, что-ли...
как это должно работать по-вашему? оператор инкремента (в данном случае постфиксный) увеличивает на 1 значение переменной и возвращает значение до увеличения
задача для первого класса:
b = 10;
b = b++;
alert(b);
чему будет равно b?

в вашем примере нужно или

Код:

document.getElementById('some_count').innerHTML++;

или

Код:

document.getElementById('some_count').innerHTML = ++document.getElementById('some_count').innerHTML;

Нет на форуме

 

#5 02.03.2011 15:48

Archi
Новичок
Зарегистрирован: 02.03.2011
Сообщений: 3

Re: Вопрос по JavaScript (последовательность операций, наверное)

alemiks написал:

операторы инкремента (декремента) применяются только к переменным, элементам массива и свойствам объектов

А, дошло, спасибо!
Действительно, ведь при m=++z не только m присваивалось 6, но и z! А n+1 - не переменная, ей он не мог ничего присвоить - отсюда и глюк...
Торможу...

Нет на форуме

 

Board footer