Не так давно прочитал следующую рекомендацию
Писать не так
for( что_то делаю с i; условие; i++ ) { //foo }
а так
for( что_то делаю с i; условие; i += 1 ) { //foo }
В целом идея понятна, но только с С++ точки зрения.
Прошу разъяснений. Если в javascript отличаются, то чем ++i и i++. И что это за операторы. Как они могут выглядеть и выглядит в классическом смысле для объекта. Почему, если они различаются, i += 1 баще, чем ++i
Раздел: Программирование, последний комментарий: 13.04.2012 23:46 Вопрос закрыт пользователем vakmus
Слушайте, помогите нубу. Я взялся за javascript буквально полнедели назад, мне надо по работе. Здесь ведь сайтоделателей вагон, подскажите, пожалуйста!
i++; эквивалентно i += 1;
Первая запись короче и предпочтительней.
Разница между i++ и ++i в том, что в первом случае сначала происходит присвоение значения переменной i, а потом увеличение на 1, а во втором случае наоборот - сперва увеличение, а потом присвоение.
Добавлено спустя 42 секунды
Хороший учебник, советую почитать http://u.to/c28CAg
Смотрите, как в С++
foo &operator ++(); // префиксный
foo operator ++(int); // постфиксный
int как параметр, конечно, бояться не надо, он для того, чтобы компилятор отличил одну функцию от другой. Интерес в чем: в префиксном случае я возвращаю ссылку, а в постфиксном -- объект (по значению), т.е. мне в любом случае придется объект копировать, а это лишние издержки.
Я сейчас читаю Стоян Стефанов, JavaScript. Шаблоны. Но признаюсь, простыми учебниками тоже часто приходится пользоваться. Пока мало опыта.
Добавлено спустя 01 минуту 07 секунд
Кстати, оттуда и рекомендация про i += 1. Про for статья.
Добавлено спустя 04 минуты 17 секунд
В общем, я концепцию до конца не освоил, не понял, что все есть объект, что классов нет. Сложно перелазить.
Я думаю, что как-то так же... Но это только мое предположение, я его не использовал. Идея-то глобальна, либо возвращаем ссылку на модифицированный объект, либо его "предыдущее" состояние.