2017-02-17 8 views
0

Я заметил это поведение в редакторе CodeAcademy и консоли Chrome. Почему аргумент console.log() не оценивается первым, если это выражение?Порядок выполнения для аргументов в console.log()

var x = 0; 
console.log(x++); // prints 0 and not 1 
console.log(x); // prints 1 
+1

х ++ является операцией пост-инкремент. Используется переменная и ** затем ** увеличивается. Если вы хотите, чтобы он увеличивался сначала, используйте pre-increment с '++ x'. –

+0

Другими словами, это не имеет ничего общего с 'console.log()' и все, что работает с оператором '++'. – nnnnnn

ответ

4

x++ средства используют значение x затем увеличиваем его, поэтому консоль будет регистрировать 0, а затем x будет увеличиваться. Если вы хотите увеличить x перед использованием его значения, а затем использовать префикс ++ как это:

var x = 0; 
 

 
console.log(++x); 
 
console.log(x);

4

Это постфиксный оператор, что означает, что он не увеличивается до тех пор, пока функция не выполнится.

Оператор префикса можно использовать: ++x, чтобы изменить значение перед его печатью.