JS: i ++ и как это работает - PullRequest
       48

JS: i ++ и как это работает

0 голосов
/ 12 февраля 2019

Я начал изучать Javascript около недели назад, и сейчас я борюсь с приставками префиксов и постфиксов.Может кто-нибудь объяснить, почему в этом коде:

let i = 0;  
const x = i++;  
console.log(x);  
console.log(i);    

Почему в этом коде после выполнения console.log (i);это 1, а не 0?
console.log (x);выводит на 0, и я думаю, что знаю почему, но я действительно не могу понять логику значения i.
Заранее спасибо за вашу помощь:)

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Операторы «приращения» датируются, по крайней мере, языком программирования C 70-х годов, и основная идея извлечения значения из хранилища до или после увеличения или уменьшения - это нечто из низкоуровневой компьютерной архитектуры.

Для увеличения (сложения 1) и уменьшения (вычитания 1) существует два варианта.Операции с предварительным увеличением и с предварительным уменьшением , где ++ или -- предшествуют переменной, легче понять: значение в переменной изменяется, итогда результатом будет новое значение.

Операции после увеличения и после уменьшения являются странными, потому что полученное вами значение является значением, равным до добавление или вычитание 1. Значение в переменной после этого все еще изменяется как с предварительным увеличением или уменьшением, но значение в контексте является значением до изменения.

Таким образом:

var x = 0;
console.log(++x); // logs 1, pre-increment
console.log(x--); // also logs 1, post-decrement
console.log(x);   // logs 0, because of the decrement
0 голосов
/ 12 февраля 2019

Это потому, что вы использовали i++.Если бы ваш код был

let i = 0;  
const x = i+1;  
console.log(x);  
console.log(i);

Тогда console.log(i) вывел бы 0, потому что i = 0
Теперь, оператор приращения ++ увеличивает значение переменной на единицу, но это зависит от размещения,
Когда вы сделали const x = i++, он перевел присвоить x значение i, затем увеличил i на единицу, если бы вы сделали const x = ++i, тогда console.log(x) выдаст 1, то же самое для console.log(i).Прочитайте это для получения дополнительной информации.

...