You are on page 1of 27

SUPPORTED BY

Оператори в JavaScript
SUPPORTED BY

Аритметични оператори
Аритметични оператори
a = 10 b=5
Оператор Функция Пример
Събиране
+ а + б = 15
Връща сумата на операндите
Изваждане
– а–б=5
Връща разликата на операндите
Умножение
* а * б = 50
Връща произведението на операндите
Деление
/ а/б=2
Връща частното на операндите

Остатък от целочислено деление


% а%б=0
Разделя операндите и връща остатъка от делението

Увеличаване
++ а++ = 11
Увеличава стойността на операнда с единица

Намаляване (без интервал между минусите)


–– а- – = 9
Намлява стойността на операнда с единица
SUPPORTED BY

Оператори за сравнение и
логически оператори
Оператори за сравнение
a = 10 b = 20

Оператор Описание Пример

>  По-голямо (a>b) -> false

<  По-малко (a<b) -> true

>= По-голямо или равно (a>=b) -> false

<= По-малко или равно (a<=b) -> true

== Равенство (a==b) -> false

!= Неравно (a!=b) -> true


Оператори за сравнение
Логически оператори
a = 10 b = 20
Оператор Описание Пример

Логическо „И“
Операторът връща резултат „true“,
(a>10&&b>10)=false
&& само
(a<=10&&b>10)=true
ако всички изрази имат стойност
„true“.

Логическо „ИЛИ“ 
Операторът връща резултат „false“,
(a>10||b>10)=true
|| само
(a>10||b>30)=false
ако всички изрази имат стойност
„false“.

! Логическо отрицание (NOT) !(a>10)=true


Оператори за присвояване
a=3 b=5
Оператор Описание Пример

Присвояване. Винаги лявата операнда приема a = b


=
стойността на дясната. a=5

a+=b
+= a+=b <=> a = a + b / x+=5 <=> x=x+5
a=8

a-=b
-= a-=b <=> a = a – b / x-=10 <=> x=x-10
a = -2

a*=b
*= a*=b <=> a = a*b
a = 15

a/=b
/= a/=b <=> a = a/b
a = 3/5
SUPPORTED BY

Вземане на решения

Условни оператори
Условия
Защо ни трябват?
Как работят?

If ни позволява да добавяме
условни разклонения, за да може
програмата ни да предприема
различен ход на действие в
зависимост от определени условия.

if (/* this expression is true */) {


// run this code
} else {
// run this code
}
Оператор if

if (логически_израз) {
   блок с код, който ще се изпълни, ако логически_израз има
стойност true
}
• А кои стойности са инстинни (thruthy) и кои лъжливи (falsy)?
• Лъжа са следните: false, null, undefined, ''(празен текстов низ), 0 (нула) и NaN. Всичко
останало е истина.
• Синтаксисът на if позволява да изпуснем къдравите скоби, когато имаме само едно
действие за изпълнение. Това обаче не е препоръчителна практика, защото отваря място
за грешки в бъдеще.
if … else

if (логически_израз) {
блок с код, който ще се изпълни,
ако логически_израз има
стойност true
}
else{
има стойност false блок с код, който if (condition) {
ще се изпълни, ако console.log('true')
логически_израз има стойнст false } else {
} console.log('false')

}
else if if (логически_израз_1) {
блок с код, който ще се изпълни, ако логически_израз_1 има стойност
true
}
else if (логически_израз_2) {
блок с код, който ще се изпълни, ако логически_израз_1 има стойност false,
а логически_израз_2 има стойност true
}
else if (логически_израз_3) {
блок с код, който ще се изпълни, ако логически_израз_2 има стойност false,
а логически_израз_3 има стойност true
}

else {
блок с код, който ще се изпълни, ако всички логически_израз_х по-горе
имат стойност false
}
else if
Пример:
if (first_condition) {

console.log('the first condition is true')


let level = 1
} else
if (level === 1) { co

console.log('slow enemies') else if (second_condition) {

} else if (level === 2) { console.log('the second condition is true')

console.log('fast enemies') }
ole.log('the second condition is true')
} else {
} else {
console.log('game over')
console.log('both condition are false')
}
}
else if
if (first_condition) {
if (first_condition) {
console.log('the first condition is true')
console.log('the first condition is true')
}
} else if (second_condition) {
if (second_condition) {
console.log('the second condition is true')
console.log('the second condition is true')
} else {
} else {
console.log('both condition are false')
console.log('both condition are false')
}
}
Булева конверсия
Операторът if (…) оценява израза в скоби и го преобразува в булев тип. Понякога
условието може да бъде стойност, а не логически израз. Затова е важно да знем, че:
• стойностите: числото нула (0), празният низ (“), неопределените стойности
(undefined) и NaN (Not a number) имат стойност FALSE.
• всички останали стойности се приемат за TRUE.

Ето защо следният израз няма да се изпълни никога


if (0) { // 0 is falsy
...
}
а следващият, винаги ще се изпълни
if (1) { // 1 is truthy
...
}
Тернарен оператор
Синтаксис: Test ? expr1 : expr2
Test −логически израз
expr1 −стойност, която се връща, ако логическият израз има стойност true
expr2 −стойност, която се връща, ако логическият израз има стойност false

conditional ? (if condition is true) : (if condition is false)

var isGoing = true;


var color = isGoing ? "green" : "red";
console.log(color);

var adult = true;


var preorder = true;
console.log("It costs $" + (adult ? "40.00" : "20.00") + " to attend the concert. Pick up your
tickets at the " + (preorder ? "will call" : "gate") + ".");
Оператор switch
Switch е условна команда като if, но ни позволява да разпишем повече състояния на
условието по компактен начин. Действително няма проблем да направим това и с
вложени if/else структури, но чрез switch ще имаме по-ясен изказ.
Синтаксисът е следният:
switch (израз) {
case "стойност-1": // if (x === 'value1')
// Действия //
[break;]
case "стойност-n": // if (x === 'value2')
// Действия //
[break;]
default:
// Действия, които да се изпълнят, когато никой друг случай не е изпълнен //
[break;]
}
Пример

Оператор switch var grade = 6;


switch(grade) {
case 6: {
console.log("Отличен");
break;
}
• Стойността на x се проверява за стриктно case 5: {
console.log("Много добър");
равенство (по тип и стойност) със стойността от break;
първия случай (тоест: value1), след това към }
case 4: {
второто (value2) и така нататък. console.log("Добър");
break;
• Ако е намерено равенство, switch започва }
да изпълнява кода, започвайки от съответния case 3: {
console.log("Среден");
случай, до най-близкия break (или до края на break;
switch). }
case 2: {
• Ако няма съвпадение на случай, се console.log("Слаб");
изпълнява кодът по подразбиране (блока с код }
break;

след default) ако съществува. default: {


console.log("Невалидна оценка");
break;
}
}
Оператор switch
Конструкцията следва да отговаря на следните условия:
• във всеки switch може да има произволен брой случаи (case)
• стойностите след case могат да бъдат само константи
• стойностите след case трябва да отговарят по тип на променливата в switch
• стойността след всеки case трябва да бъде уникална
• Всеки case може да има нула или повече команди за изпълнение и обикновено
завършва с break.
• Ако break липсва /бъде пропуснат/ в някой от случаите (case), изпълнението на
програмата ще продължи и от следващия case.
Например:
switch (променлива) { case 1: case 2: console.log("Case 1 or 2"); break; }
е еквивалентно на:
if (променлива === 1 || променлива === 2) { console.log("Case 1 or 2"); }
• блока default не е задължителен
В този случай, след като намери първото
съвпадение и го изпълни, switch няма да
//Пример на switch без break приключи а ще продължи да изпълнява
let a = 2 + 2; следващите случаи, поради липсата на
break.
switch (a) { В конзолата ще се изведе:
case 3:
console.log( 'Too small' );
case 4:
console.log( 'Exactly!' );
case 5:
console.log( 'Too big' );
default:
console.log( "I don't know such values" );
} Да се пропуска break обикновено не е
добра практика – води до по-трудно
четим код, а и е по-лесно е да се
допусне грешка.
Групи „case“ let a = 2 + 2;

Switch допуска групиране на няколко варианта, switch (a) {


ако те споделят един и същи код: case 4:
alert('Right!');
break;
case 3: // (*) групиране на варианти
case 5:
alert('Wrong!');
Възможността да се групират варианти е alert("Why don't you take a math class?");
страничен ефект от начина, по който switch / break;
case работи без прекъсвания (break). Тук default:
изпълнението на случай 3 започва от линията alert('The result is strange. Really.');
(*) и минава през случай 5, защото няма }
прекъсване.

You might also like