⊗jsPmBsPPT 60 of 505 menu

Префиксен и постфиксен тип в JavaScript

Всъщност операциите инкремент и декремент могат да бъдат записани по два начина. Нека разгледаме тези начини с пример ++, а за -- всичко ще бъде аналогично.

В първия начин операцията се записва след името на променливата, ето така: a++, а във втория начин - преди името на променливата, ето така: ++a.

Първата форма се нарича постфиксна, а втората - префиксна. Нека видим в какви случаи се проявява разликата между тези две форми.

Нека имаме код alert(a++) и код alert(++a).

В случая с alert(a++) променливата първо ще се изведе, а след това ще се увеличи с единица, а в случая с alert(++a) променливата първо ще се увеличи с единица, а след това ще се изведе.

В следващия пример първият alert ще изведе 0, тъй като първо ще се изпълни извеждането на екрана, и едва след това променливата ще се увеличи:

let num = 0; alert(num++); // ще изведе 0 alert(num); // ще изведе 1

А сега променливата първо ще се увеличи, а едва след това ще се извърши извеждането на екрана:

let num = 0; alert(++num); // ще изведе 1 - променливата се увеличи веднага

Такова поведение е в сила не само за извеждане на екрана, но и за присвояване:

let num1 = 0; let num2 = num1++; // в променливата num2 ще се запише 0 alert(num2); // ще изведе 0 alert(num1); // ще изведе 1 - променливата num1 се промени след записването в num2

А сега нека сменим постфиксната форма с префиксна:

let num1 = 0; let num2 = ++num1; // в променливата num2 ще се запише 1 alert(num2); // ще изведе 1

Ако нашата операция се изпълнява на отделен ред, то няма разлика между префиксната и постфиксната форми:

let num = 0; ++num; num++; alert(num); // ще изведе 2

Без да пускате кода, определете какво ще се изведе на екрана:

let num = 3; alert(++num);

Без да пускате кода, определете какво ще се изведе на екрана:

let num = 3; alert(num++);

Без да пускате кода, определете какво ще се изведе на екрана:

let num = 3; alert(--num);

Без да пускате кода, определете какво ще се изведе на екрана:

let num = 3; alert(num--);

Без да пускате кода, определете какво ще се изведе на екрана:

let num1 = 3; let num2 = ++num1; alert(num1); alert(num2);

Без да пускате кода, определете какво ще се изведе на екрана:

let num1 = 3; let num2 = num1++; alert(num1); alert(num2);

Без да пускате кода, определете какво ще се изведе на екрана:

let num1 = 3; let num2 = --num1; alert(num1); alert(num2);

Без да пускате кода, определете какво ще се изведе на екрана:

let num1 = 3; let num2 = num1--; alert(num1); alert(num2);

Без да пускате кода, определете какво ще се изведе на екрана:

let num1 = 3; num1++; let num2 = num1--; alert(num1++); alert(--num2);
Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне