Я не понимаю, почему переменная у равна 4? - PullRequest
0 голосов
/ 10 октября 2019

Я несколько понимаю причину в комментарии, почему y равен 4, но я не понимаю, почему, когда переменная y объявлена ​​с x++, она не увеличивает ее и не присваивает3 вместо того, чтобы просто принять предыдущее объявленное значение?

// In this line: var y = x++ the value of x is assigned to y before x is incremented, 
// so y equals 3 on line 2, while x equals 4. 
// Therefore on line 3, y now equals 4 instead of 5.

var x = 3;
var y = x++;
y += 1;

1 Ответ

2 голосов
/ 10 октября 2019

Это связано с тем, где вы размещаете свой ++. Способ работы ++ (это всего лишь синтаксис) заключается в том, что если вы используете его после x, код будет увеличивать переменную y, но выражение затем возвращает значение ДО того, как оно увеличит x (поэтому он просто вернет значениеИкс). То, что вы хотите, чтобы увеличение происходило в первую очередь. Таким образом, приведенный ниже код должен работать при увеличении значения, поскольку оно сначала будет увеличиваться, а затем возвращать переменную.

let x = 3;
let y = ++x;
y += 1;

console.log(y); // Returns 5
...