2017-01-10 3 views
2

Я немного путаю об этом процессе:Разницы между варом встревоженной ++ и варом +-

function counter() { 
    var count = 0; 
    return function() { 
     alert(count++); 
    } 
} 
var count = counter(); 
count(); 

Почему после выполнения кода, предупреждение было еще 0, но если я изменю «подсчитывать ++» на «счет +1 ", выход предупреждения был 1. Может ли кто-нибудь объяснить мне этот процесс.

+0

изменить его на счетчик ++ и посмотреть, что происходит ... – user2782001

+6

'alert (count ++)' сначала предупредит значение 'count', а затем увеличит его на единицу. Это называется оператором post-Increment. Вы можете использовать '++ count', чтобы сначала увеличить значение, а затем предупредить. – Tushar

+1

Вы [прочитали какую-либо документацию] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Increment_())? –

ответ

2

1) count ++ сообщает сценарию, что он предупреждает (подсчитывает), а затем увеличивается на единицу.

2) ++ подсчитывает сценарий, чтобы увеличить счет на единицу, а затем предупредить.

3) счетчик + 1 оценивается для предупреждения, но он не меняет значение переменной count.

+3

1) не совсем верно. 'count' увеличивается до появления предупреждения, но' count ++ 'не возвращает обновленное значение' count', оно возвращает предыдущее значение 'count'. –

+0

«подсчет + 1 оценивается для предупреждения, но он не меняет значение переменной count». --- для моего понимания, после того, как предупреждение вызывается, переменная count останется 0 или если это произойдет в цикле в 10 раз переменная count останется 0 - это вы имеете в виду? –

+1

@Mohammad count не изменяется –

Смежные вопросы