Оператори JavaScript. Вирази та оператори Бінарні оператори javascript

Головна / Корисна інформація

Цей розділ описує вирази та оператори мови JavaScript, такі як оператори присвоєння, порівняння, арифметичні, бітові, логічні, малі, та різні спеціальні оператори.

Повний та детальний список операторів та виразів також доступний у цьому посібнику.

Оператори

JavaScript має такі типи операторів. Цей підрозділ описує кожен тип і містить інформацію про пріоритети один над одним.

JavaScript підтримує бінарні та унарні оператори, а також ще один спеціальний тернарний оператор – умовний оператор. Бінарна операція використовує два операнди, один перед оператором та інший за ним:

operand1 operator operand2

Наприклад: 3+4 або x*y.

У свою чергу унарна операція використовує один операнд перед або після оператора:

operator operand operand operator

Наприклад: x++ або ++x.

Оператори привласнення

Через війну операції присвоювання операнду зліва оператора присвоювання (знак "=") встановлюється значення, яке береться з правого операнда. Основним оператором привласнення є =, він надає значення правого операнда операнду, що знаходиться ліворуч. Таким чином, вираз x = y означає, що x надається значення y.

Існують також складові оператори привласнення, які використовуються для скороченого представлення операцій, описаних у таблиці:

Список операторів привласнення
Ім'я Скорочений оператор Сенс
Привласнення x = y x = y
Привласнення із додаванням x += y x = x + y
Привласнення з відніманням x -= y x = x - y
Привласнення з множенням x *= y x = x * y
Привласнення з поділом x /= y x = x/y
Привласнення за модулем x %= y x = x % y
Привласнення з лівим зрушенням x<<= y x = x<< y
Привласнення з правим зрушенням x >>= y x = x >> y
Привласнення з беззнаковим зрушенням праворуч x >>>= y x = x >>> y
Привласнення з бітовим AND x &= y x = x & y
Привласнення з побитовим XOR x^=y x = x^y
Привласнення з побитовим OR x |= y x = x | y

Деструктуризація

Для більш складного привласнення JavaScript є синтаксис деструктуризації - це вираз, який дозволяє витягувати дані з масивів або об'єктів, використовуючи синтаксис, який дзеркає конструктори масивів і літерали об'єктів.

Var foo = ["one", "two", "three"]; // без деструктуризації var one = foo; var two = foo; var three = foo; // із деструктуризацією var = foo;

Оператори порівняння

Ви можете використовувати оператор delete для видалення змінних, оголошених неявно, але ви не можете за його допомогою видаляти змінні, оголошені за допомогою var.

Після застосування оператора delete властивість елемента змінюється на undefined. Оператор delete повертає true якщо виконання операції можливе; оператор повертає false, якщо виконання операції неможливе.

X = 42; var y = 43; myobj = New Number(); myobj.h = 4; // Створюємо властивість h delete x; // Повертає true (можна видалити змінну оголошену неявно) delete y; // повертає false (не можна видалити змінну оголошену з допомогою var) delete Math.PI; // повертає false (не можна видалити вбудовані властивості) delete myobj.h; // повертає true (можна видалити власні властивості) delete myobj; // повертає true (можна видалити об'єкт оголошений неявно)

Видалення елементів масиву

Видалення елемента масиву не впливає на довжину масиву. Наприклад, якщо видалити a , елемент a залишиться a, a стане undefined.

Коли елемент масиву видаляється за допомогою оператора delete , то масиву видаляється значення даного елемента. У наступному прикладі елемент trees видалений за допомогою оператора delete. Однак елемент trees залишається адресованим і повертає значення undefined .

Var trees = new Array("redwood", "bay", "cedar", "oak", "maple"); delete trees; if (3 in trees) ( // умова не виконується )

Якщо ви хочете, щоб елемент залишався в масиві, але мав значення undefined, використовуйте ключове слово undefined замість оператора delete . У наступному прикладі елементу trees присвоєно значення undefined але елемент при цьому залишається в масиві:

Var trees = new Array("redwood", "bay", "cedar", "oak", "maple"); trees = undefined; if (3 in trees) ( // даний блок коду виконується )

Оператор typeof

Використовуйте оператор instanceof , коли необхідно підтвердити тип об'єкта під час виконання програми. Наприклад, при перехопленні виключень ви можете створити різні програмні переходи для обробки винятків залежно від типу виключення, що обробляється.

Наприклад, наступний код використовує оператор instanceof для перевірки того, чи є об'єкт theDay об'єктом типу Date . Оскільки theDay дійсно є об'єктом типу Date , то програма виконує код, що міститься у затвердженні if .

Var theDay = New Date(1995, 12, 17); if (theDay instanceof Date) ( // код, що виконується )

Пріоритет операторів

Пріоритетоператорів визначає порядок їх виконання при обчисленні виразу. Ви можете впливати на пріоритет операторів за допомогою дужок.

Наведена нижче таблиця визначає пріоритет операторів від найвищого до нижчого.

Таблиця 3.7 Пріоритет операторів
Тип оператора Оператори
властивість об'єкту .
виклик, створення екземпляра об'єкта () new
заперечення, інкремент ! ~ - + ++ -- typeof void delete
множення, розподіл * / %
додавання, віднімання + -
побитовий зсув << >> >>>
порівняння, входження < <= >>= in instanceof
рівність == != === !==
бітове-і &
бітове-виключаюче-або ^
бітове-або |
логічне-і &&
логічне-або ||
умовний (тернарний) оператор ?:
привласнення = += -= *= /= %= <<= >>= >>>= &= ^= |=
кома ,

Більш докладна версія даної таблиці, що містить посилання та додаткову інформацію щодо кожного оператора, знаходиться у довіднику JavaScript.

Вирази

Виразомє будь-який коректний блок коду, який повертає значення.

Концептуально, існують два типи виразів: ті, що надають змінної значення, і ті, які обчислюють значення без його привласнення.

Вираз x = 7 є прикладом виразу першого типу. Цей вираз використовує оператор= для привласнення змінної x значення 7 . Сам вираз також дорівнює 7.

Код 3+4 є прикладом виразу другого типу. Цей вираз використовує оператор"+" для складання чисел 3 та 4 без привласнення змінної отриманого результату 7.

Усі вирази в JavaScript поділяються на наступні категорії:

Основні висловлювання

Базові ключові словата основні вирази в JavaScript.

Оператор this

Використовуйте ключове слово для вказівки на поточний об'єкт. У випадку це вказує на викликаний об'єкт, якому належить даний метод. Використовуйте це так:

This["propertyName"] this.propertyName

Припустимо, функція validate виконує перевірку якості value деякого об'єкта; заданий об'єкт, а також верхня та нижня межа величини даної властивості:

Function validate(obj, lowval, hival)( if ((obj.value)< lowval) || (obj.value >hival)) alert("Неправильне значення!"); )

Ви можете викликати функцію validate для обробника події onChange для кожного елемента форми, використовуючи це для вказівки на елемент форми, як це показано в наступному прикладі:

Введіть число від 18 до 99:

Оператор угруповання

Оператор угруповання "дужки" () контролює пріоритет обчислення виразів. Наприклад, ви можете перевизначити порядок - "множення та розподіл, а потім додавання та віднімання", так щоб, наприклад, щоб додавання виконувалося до множення:

Var a = 1; var b = 2; var c = 3; // звичайний порядок a + b * c // 7 // виконується, як завжди, так a + (b * c) // 7 // тепер поміняємо порядок // додавання до множення (a + b) * c // 9 // що еквівалентно наступному a * c + b * c // 9

Спрощений синтаксис створення масивів та генераторів

Спрощений синтаксис - експериментальна можливість JavaScript, яка, можливо, буде додана в майбутні версії ECMAScript. Є 2 версії синтаксису:

Спрощений синтаксис для масивів. (for (x of y) y) Спрощений синтаксис для генераторів.

Спрощені синтаксиси існують у багатьох мовах програмування і дозволяють швидко збирати новий масив, заснований на існуючому. Наприклад:

) i * i]; // [1, 4, 9] var abc = ["A", "B", "C"]; ; // [ "a", "b", "c" ]

Лівосторонні вирази

Значення зліва призначаються значення праворуч.

new

Ви можете використовувати оператор new для створення екземпляра об'єкта користувача типу або одного з вбудованих об'єктів. Використовуйте оператор new таким чином:

Var objectName = New objectType();

super

Ключове слово використовується для виклику функцій батьківського об'єкта. Це корисно і з класами для виклику конструктора батька, наприклад.

Super(); // Викликає конструктор батька. super.functionOnParent();

Оператор розширення

Оператор розширення дозволяє виразу розширюватися в місцях з безліччю аргументів (для викликів функцій) або безліч елементів (для масивів).

Приклад:Сьогодні, якщо у вас є масив і ви хочете створити новий з існуючою частиною першого, то літерального синтаксису масиву вже недостатньо, і ви повинні писати імперативний (без варіантів) код, використовуючи комбінацію push, splice, concat і т.д. Але з цим оператором код стає коротшим:

Var parts = ["shoulder", "knees"]; var lyrics = ["head", ...parts, "and", "toes"];

Подібним чином оператор працює із викликами функцій:

Function f(x, y, z) ( ) var args = ; f(...args);

Зміст документа

JavaScript підтримує компактний набір операторів, які можуть використовуватись для створення інтерактивних веб-сторінок. У цьому розділі дано огляд цих операторів.

У цьому розділі є такі розділи, які надають короткий огляд кожного оператора:

  • Блок Операторів: { }
  • Умовні оператори: if...elseі switch
  • Оператори Циклів: for, while, do...while, label, break і continue (labelсам по собі не є оператором циклу, але часто використовується із зазначеними операторами)
  • Оператори Маніпуляції Об'єктами: for...inі with
  • Коментарі
  • Оператори Обробки Винятків: try...catchі throw
Будь-який вираз також є оператором. Див. у Розділі 3 у розділі «Висловлення та Операції» повну інформаціюпро операції.

Використовуйте символ «точка з комою» (;) для розділення операторів у коді JavaScript.

Див. у книзі Ядро JavaScript. Довідник деталі про операторів із цього розділу.

1. Блок операторів

Блок операторів використовується для групування операторів. Блок обмежений фігурними дужками:

( statement1 statement2 . . . statementn )

2. Умовні оператори

Умовний оператор є набором команд, що виконуються, якщо специфікована умова - true. JavaScript підтримує два умовні оператори: if...elseі switch.

2.1. Оператор if...else

Цей оператор використовується для виконання певних операторів, якщо логічна умова true; використовуйте необов'язковий блок elseдля виконання інших операторів, якщо умова false. Оператор if виглядає так:

if (condition) (statements1) [else (statements2)]

Умова може бути будь-яким виразом JavaScript, що обчислюється в trueабо false. Оператори, що виконуються, можуть бути будь-якими операторами JavaScript, включаючи вкладені оператори if. Якщо вам потрібно виконати більше одного оператора після операторів ifабо else, ви повинні укласти ці оператори, що виконуються, у фігурні дужки ().

Ви не повинні використовувати прості присвоєння умовного оператора. Наприклад, НЕ використовуйте такий код:

Якщо Ви бажаєте використовувати присвоєння в умовному операторі, введіть додаткові дужки навколо операції присвоєння. Наприклад, if((x = y)).

Не плутайте примітивні Boolean-значення trueі falseзі значеннями trueі falseоб'єкта Boolean. Будь-який об'єкт, чиє значення не undefined, null, zero, **NaN** або порожній рядок, включаючи об'єкт Booleanзі значенням false, обчислюється в true, коли передається умовному оператору. Наприклад:

var b = new Boolean (false); if (b) // ця умова обчислюється в true

Приклад.

У цьому прикладі функція checkDataповертає true, якщо кількість символів у Text-об'єкті дорівнює трьом; інакше, виводить попередження та повертає false.

function checkData () ( if (document . form1 . threeChar . value . length == 3 ) ( return true ) else ( alert (" Enter exactly three characters." + document . form1 . threeChar . value + " is not valid. " ) return false ) )

2.2. Оператор switch

Оператор switchдозволяє програмі обчислювати вираз і намагається зіставити значення виразу значення в позначці case. Якщо збіг виявлено, програма виконує асоційований оператор. Оператор switchвиглядає так:

switch (expression)( case label : statement ; break ; case label : statement ; break ; ... default : statement ; )

Програма спочатку шукає label, що збігається зі значенням expression, а потім виконує асоційований стан/оператор. Якщо збігається labelне знайдено, програма шукає необов'язковий default statement/оператор за замовчуванням і, якщо його знайдено, виконує асоційований оператор. Якщо default statementне знайдено, програма продовжує виконувати оператор, наступний після кінця оператора switch.

Необов'язковий оператор break, асоційований з міткою case label, гарантує, що програма перерве виконання оператора switch, як тільки буде виконано оператор знайденого збігу, та продовжить виконання з оператора, що йде після оператора switch. Якщо breakвідсутня, програма продовжує виконання наступного оператора всередині оператора switch.

Приклад.

Тут, якщо exprобчислюється в "Bananas", програма знаходить збіг з case "Bananas" і виконує асоційований оператор. Якщо виявлено break, програма перериває switchта виконує оператор після блоку оператора switch. Якщо breakвідсутня, оператор в case"Cherries" також буде виконано.

switch (expr) ( case " Oranges " : document . write (" Oranges є $0.59 a pound.
" ) ; break ; case " Apples " : document . write (" Apples are $0.32 a pound.
" ) ; break ; case " Bananas " : document . write ( " Bananas є $0.48 a pound.
" ) ; break ; case " Cherries " : document . write ( " Cherries є $3.00 a pound.
" ) ; break ; default : document . write (" Sorry, ми з " + i + " .
" ) ; ) document . write (" Це буде все, що ви "d like?"
" ) ;

3. Оператори циклів

Цикл/ loopце набір операторів, який виконується кілька разів, доки виконується специфікована умова. JavaScript підтримує циклічні оператори for, do...whileі while, а також label (labelсам по собі не є оператором циклу, але часто використовується із зазначеними операторами). Крім того, ви можете використовувати оператори breakі continueусередині операторів циклів.

Ще один оператор циклу, for...inтакож виконує свої оператори циклічно, але використовується для роботи з об'єктами. Див. Оператори Маніпуляції Об'єктами.

3.1. Оператор for

Цикл forповторюється доти, доки специфіковане значення false. Цикл JavaScript forсхожий на цикли for Java та C. Оператор forвиглядає так:

for ([ initialExpression ] ; [ condition ] ; [ incrementExpression ]) ( statements )

Коли цикл forвиконується, відбувається таке:

1. Ініціалізуючий вираз initialЕxpressionякщо є, виконується. Це вираз зазвичай ініціалізує один або більше лічильників циклу, і синтаксис дозволяє вирази будь-якої складності. Це також може оголошувати змінні.


2. Обчислюється вираз condition/умовний. Якщо значення condition - true, виконуються statements/оператори циклу. Якщо значення condition - false, цикл forприпиняє роботу. Якщо вираз conditionповністю відсутня, приймається, що condition – true.


3. Виконуються statements.


4. Оновлюючий вираз incrementExpressionякщо є, виконується, і управління повертається до Кроку 2.


Приклад.

Ця функція містить оператор for, який підраховує кількість вибраних опцій у списку, що прокручується (об'єкт Select, що дозволяє вибрати кілька позицій). Оператор forоголошує змінну iта ініціалізує її в нуль. Він перевіряє, чи менше iкількості опцій об'єкта Select, виконує оператор ifта інкремент змінної iна одиницю після кожного циклу проходу.

Choose some music types, then click the button below:

"alert ("Number of options selected: " + howMany(document.selectForm.musicTypes))">

3.2. Оператор do...while

Оператор do...whileповторюється, поки специфікований вираз - false.Оператор do...whileвиглядає так:

do ( statement ) while (condition )

statementвиконується один раз перед перевіркою умови/condition. Якщо condition - true, оператор виконується знову. Наприкінці кожного виконання conditionперевіряється. Якщо condition - false, виконання зупиняється та управління передається оператору після do...while.

приклад.

У цьому прикладі цикл doітерується мінімум один раз і повторює ітерації, поки iменше 5 .

do ( i += 1 ; document . write (i ); ) while (i< 5 ) ;

3.3. Оператор while

Оператор whileвиконує свої оператори, поки специфікована condition/умова - true. Оператор whileвиглядає так:

while (condition) (statements)

Якщо conditionстає false, Оператори всередині циклу припиняють виконуватися і управління передається оператору, наступному після циклу.

Перевірка умови/condition відбувається до виконання операторів усередині циклу. Якщо conditionповертає true, оператори виконуються та conditionперевіряється знову. Якщо condition повертає false, виконання циклу припиняється та управління передається оператору, що йде після оператора while.

приклад 1.

Цей цикл whileітерує, поки nменше 3 :

n = 0; x = 0; while (n< 3 ) { n ++; x += n ; }

За кожної ітерації цикл збільшує nі додає це значення до змінної x. Отже, xі nприймають такі значення:

  • Після першого проходу: n = 1 та x = 1
  • Після другого проходу: n = 2 та x = 3
  • Після третього проходу: n = 3 та x = 6
Після виконання трьох проходів циклу, condition n< 3 більше не true, тому виконання циклу переривається.

Приклад 2: Нескінченний цикл.

Переконайтеся, що умова циклу колись стане false; інакше цикл ніколи не перерветься. Оператори наступного циклу whileвиконуються нескінченно, оскільки умова ніколи не стане false:

while (true) (alert ("Hello, world"))

3.4. Оператор label

Оператор labelє ідентифікатором, який можна посилатися з будь-якого місця програми. Наприклад, ви можете використати labelдля ідентифікації циклу, а потім використовувати оператори breakабо continueдля переривання циклу чи продовження виконання.

Синтаксис оператора labelвиглядає так:

label : statement

Значенням labelможе бути будь-який вірний ідентифікатор JavaScript, який не є зарезервованим словом. Оператор/statement, що ідентифікується за допомогою labelможе бути будь-яким оператором.

приклад.

У цьому прикладі label markLoopідентифікує цикл while.

markLoop : while (theMark == true ) doSomething() ; )

3.5. Оператор break

Використовуйте оператор breakдля переривання циклу switchабо оператора з міткою label.
  • Якщо ви використовуєте breakбез label, він негайно перериває найближчий while, do-while, forабо switchта передає керування наступному оператору.
  • Якщо ви використовуєте breakз label, він перериває спеціфікований оператор.
Синтаксис оператора breakтакий:

1 . break 2 . break label

Перший варіант перериває найближчий цикл або switch; другий варіант перериває специфікований оператор, що має мітку.

Приклад.

Тут виконується ітерація за елементами масиву, доки не буде знайдено індекс елемента зі значенням theValue:

for (i = 0; i< a . length ; i ++ ) { if (a [ i ] = theValue ) break ; }

3.6. Оператор continue

Оператор continueвикористовується для рестарту операторів while, do-while, forі label.
  • Якщо ви використовуєте continueбез label, він перериває поточну ітерацію найближчого циклу while, do-whileабо forта продовжує виконання цього циклу з наступної ітерації. На відміну від оператора break, continueне перериває виконання циклу повністю. У циклі whileвін переходить на condition. У циклі for на increment-expression.
  • Якщо ви використовуєте continue з label, він застосовується до оператора циклу, ідентифікованого цим label.
Синтаксис оператора continueтакий:

1 . 2 . continue label

приклад 1.

Це приклад циклу whileз оператором continue, який виконується, якщо значення iодно 3 . Таким чином, nотримує значення 1, 3, 7 та 12 .

i = 0; n = 0; while (i< 5 ) { i ++; if (i == 3 ) continue ; n += i ; }

приклад 2.

Оператор, позначений як checkiandjмістить оператор, позначений як checkj. Якщо виявлено continue, програма перериває поточну ітерацію checkjі розпочинає наступну ітерацію. Щоразу при виявленні continue, checkjпочинає ітерацію знову, доки його умова не поверне false. Якщо повернуто false, виконується частина оператора, що залишилася checkiandjі checkiandjреітерує, доки його умова не поверне false. Якщо повертається false, програма продовжує виконуватись з оператора, наступного після checkiandj.

Якщо continue має labelдля checkiandj, програма продовжить виконання від початку оператора checkiandj.

checkiandj : while (i< 4 ) { document . write (i + "
" ) ; i += 1 ; checkj : while (j > 4 ) ( document . write (j + "
" ) ; j -= 1 ; if ((j % 2 ) == 0 ) continue checkj ; document . write (j + " is odd.
" ) ; ) document . write ( " i = " + i + "
" ) ; document . write ( " j = " + j + "
" ) ; }

4. Оператори маніпуляції об'єктами

JavaScript використовує оператори for...inі withдля маніпулювання об'єктами.

4.1. Оператор for...in

Оператор for...inітерує специфіковану змінну за всіма властивостями об'єкта. Для кожного досягнутого властивості JavaScript виконує специфіковані оператори. Оператор for...inвиглядає так:

For (variable in object) (

Приклад.

Ця функція приймає як аргумент об'єкт та ім'я об'єкта. Потім вона ітерує за всіма властивостями цього об'єкта та повертає рядок – список імен властивостей та їх значень.

function dump_props ( obj , obj_name ) ( var result = " " ; for ( var i in obj ) ( result += obj_name + " . " + i + " = " + obj [ i ] + "
" ) result += "


" ; return result ; )

Для об'єкту carз властивостями makeі modelрезультат буде таким:

car. make=Ford car. model = Mustang

4.2. Оператор with

Оператор withвстановлює стандартний об'єкт для набору блоку операторів. JavaScript переглядає некваліфіковані імена всередині блоку операторів та визначає, чи є імена властивостями об'єкта за замовчуванням. Якщо некваліфіковане ім'я є властивістю, ця властивість використовується в операторі; інакше, використовується локальна чи глобальна змінна.

Оператор with виглядає так:

with (object )( statements )

Приклад.

Тут оператор withспецифікує, що об'єкт Mathє стандартним об'єктом. Оператори після оператора with звертаються до якості PIі до методів cosі sinбез специфікації об'єкта. JavaScript приймає об'єкт Mathяк об'єкт цих звернень.

var a, x, y;; var r = 10 with (Math ) ( a = PI * r * r ; x = r * cos (PI ) ; y = r * sin (PI / 2); )

Примітка:

Використання оператора with може сповільнити виконання програми.

5. Коментарі

Коментарі зазвичай пояснюють дії, які виконуються кодом. Коментарі ігноруються інтерпретатором. JavaScript підтримує коментарі у стилі Java та C++:
  • Однорядковий коментар із подвійним слешем на початку рядка (//).
  • Багаторядковий коментар із символами /* на початку та з символами */ наприкінці.
приклад.

Ось приклад двох коментарів:

// Це однорядковий коментар. /* А це - багаторядковий. Він може бути будь-якої довжини, і ви можете помістити сюди все, що завгодно. */

6. Оператори обробки винятків

Ви можете викликати виняток оператором throwта обробляти його операторами try...catch.

Оператор try...catchвикористовується також для обробки винятків Java. Див. розділ «Обробка виключень Java в JavaScript» та «Обробка виключень JavaScript в Java».

6.1. Оператор throw

Оператор throwвикористовується для виклику виключення. Якщо ви викликаєте виняток, ви специфікуєте вираз, що містить значення виключення:

throw expression

Наступний код викликає кілька винятків.

throw "Error2"; // генерує виняток із рядковим значенням throw 42; // генерує виняток зі значенням 42 throw true; // генерує виняток із значенням true

При виклику виключення можна специфікувати об'єкт. Потім можна звернутися до властивостей об'єкта в блоці catch. Наступний приклад створює об'єкт myUserExceptionтипу UserExceptionта використовує його в операторі throw.

// Створюється об'єкт типу UserException function UserException (message) (this. message = message; this. name = "UserException";) // Створюється та викликається екземпляр об'єкта myUserException = new UserException ("Value too high"); throw myUserException;

6.2. Оператор try...catch

Оператор try...catchпозначає блок операторів, намагається їх виконати та специфікує один або більше варіантів відповіді у разі виключення. Якщо виняток виник, оператор try...catchвідловлює його.

Оператор try...catchскладається з блоку try, який містить один або більше операторів, і нуль або більше блоків catch, що містять оператори, які специфікують дії при виклику виключення в блоці try. Тобто якщо ви хочете виконати блок tryі він не виконується, ви передаєте управління в блок catch. Якщо будь-який оператор блоку try(або оператор функції, що викликається з блоку try) викликає виняток, управління негайно передається в блок catch. Якщо виняток не було викликано, блок catchпропускається. Блок finallyвиконується після виконання блоків tryі catch, але до виконання оператора, що йде після блоку оператора try...catch.

У прикладі використовується оператор try...catch. Викликається функція, яка запитує назву місяця з масиву, базуючись на значенні, яке передається функції. Якщо значення не відповідає номеру місяця (1-12), викликається виняток із значенням "InvalidMonthNo"та оператори блоку catchвстановлюють змінну в monthNameзначення "unknown".

function getMonthName (mo) (mo = mo - 1; // Уточнюється номер місяця за індексом масиву (1=Jan, 12=Dec) var months = new Array ( " Jan " , " Feb " , " Mar " , " Apr " , " May " , " Jun " , " Jul " , " Aug " , " Sep " , " Oct " , " Nov " , "Dec"); if (months [mo]! = null) (return months [mo]) else (throw "InvalidMonthNo")) try ( // Спроба виконати ці оператори: monthName = getMonthName (myMonth) // функція може спричинити виняток) catch (e) (monthName = "unknown" logMyErrors (e) // об'єкт, що викликав виняток, передається обробнику винятків}

throw; Ви можете використовувати цей ідентифікатор для отримання інформації про викликаний виняток. JavaScript створює цей ідентифікатор під час входу в блок catch; ідентифікатор існує лише у період виконання блоку catch; після завершення виконання блоку catchідентифікатор більше недоступний.

Наприклад, наступний код викликає виняток. Якщо виникає виняток, керування передається до блоку catch.

try ( throw " myException " // генерується виняток) catch (e) ( // Оператори для обробки будь-якого виключення logMyErrors (e) // виняток передається обробнику помилок}

Декілька блоків catch

Єдиний оператор tryможе містити кілька умовних блоків catch, кожен із яких обробляє специфічний тип виключення. В цьому випадку вхід у відповідний умовний блок catchвиконується лише за виклику виключення, специфікованого для даного блоку. Ви можете також на вибір включити окремий блок catchдля всіх неспецифікованих винятків як фінальний блок catchу операторі.

Наприклад, наступна функція викликає три інші функції (оголошені в іншому місці), які перевіряють її аргументи. Якщо функція перевірки визначає, що компонент, що перевіряється, невірний, вона повертає 0, змушуючи функцію викликати певний виняток.

function getCustInfo (name , id , email ) ( var n , i , e ; if (! validate_name (name )) throw " InvalidNameException " else n = name ; if (! validate_id (id )) throw " InvalidIdException " else i = ; if (! validate_email (email )) throw " InvalidEmailException " else e = email ; cust = (n + " " + i + " " + e ) ;

Умовні блоки catchкерують викликом відповідного обробника винятків.
" ) { // викликає обробник неправильних ids/ідентифікаторів bad_id_handler (e)) catch (e if e == "InvalidEmailException") ( // викликає обробник неправильних email-адрес bad_email_handler (e) ) catch (e) ( // невідомий виняток записується в log-файл logError (e))

Блок finally

Блок finally містить оператори, що виконуються після виконання блоків tryі catch, але до виконання операторів, що йдуть після оператора try...catch. Блок finallyвиконується незалежно від цього, чи було викликано виняток. Якщо виняток викликається, оператори блоку finallyвиконуються навіть у тому випадку, якщо жоден блок catchне обробив виняток.

Ви можете використати блок finallyдля коректного завершення скрипта у разі виключення; наприклад, Вам може знадобитися звільнити ресурс, пов'язаний із скриптом. У наступному прикладі файл відкривається і оператори працюють із ним (серверний JavaScript дає можливість доступу до файлів). Якщо викликається виключення при відкритому файлі, блок finallyзакриває файл до того, як скрипт зазнає невдачі.

openMyFile(); try ( writeMyFile ( theData ) ) finally ( closeMyFile () // ресурс завжди закривається}

Вкладення операторів try...catch

Ви можете вкладати один або більше операторів try...catchодин в одного. Якщо внутрішній оператор try...catchне має блоку catch, на збіг перевіряється блок catchоператора, що містить його try ... catch.

Цей рядок описує JavaScript's expressions and operators, including assignment, comparison, arithmetic, bitwise, logical, string, ternary and more.

A complete and detailed list of operators and expressions is also available in the reference .

Operators

JavaScript має наступні типи операторів. Це секція повідомить операторів і повідомлень інформації про оператора precedence.

JavaScript has both binary and unary operadors, і один спеціальний ternary operator, conditional operator. У binary operator requires 2 operands, 1 before the operator and 1 after the operator:

operand1 operator operand2

Для прикладу, 3+4 або x*y .

Для вашого оператора вимагають одного оператора, його перед або після оператора:

operator operand operand operator 1/2; // 0.5 1/2 == 1.0/2.0; // this is true

У порівнянні до стандартних арифметичних операцій (+, -, * /), JavaScript надає арифметичні оператори, розміщені в наступному table:

Arithmetic operators
Operator Description Example
Remainder (%) Binary operator. Відображає integer remainder of dividing the 2 operands. 12 % 5 returns 2.
Increment (++) Unary operator. Adds one to its operand. Якщо використовується як fix operator (++x), відновить значення його функцій після того, як adding one; якщо вона застосовується як оптифікатор оператора (x++), відновить значення його функцій перед тим, як один. If x is 3, then ++x sets x to 4 and returns 4, whereas x++ returns 3 and, тільки then, sets x to 4.
Decrement (--) Unary operator. Subtracts one from its operand. Return value is analogous to that for the increment operator. If x is 3, then --x sets x to 2 and returns 2, whereas x-- returns 3 and, тільки then, sets x to 2.
Unary negation (-) Unary operator. Відновити negation of its operand. Якщо x is 3, then -x returns -3.
Unary plus (+) Unary operator. Примітка, щоб convertit operand to a number, if it is not already. +"3" returns 3 .
+true returns 1.
Exponentiation operator (**) Calculates base до exponent power, that is, base exponent 2 ** 3 returns 8 .
10**-1 returns 0.1.

Bitwise operators

Використовуйте той факт, що ви потребуєте, щоб підтвердити тип об'єкта під час виконання. Для прикладу, коли сприймають вирази, ви можете почати до різного вилучення-розсилки коду, depending on the type of exception thrown.

Для прикладу, наступний код використовує значення, що визначається тим, щочас є значенням Date object. Тому, щоDay is Date object, the statements в the if statement execute.

Var theDay = New Date(1995, 12, 17); if (theDay instanceof Date) ( // statements to execute )

Operator precedence

The precedence of operators determines the order they є applied when evaluating an expression. Ви можете скористатися функцією розслідування за допомогою parentheses.

Наступні table describes precedence of operators, від highest to lowest.

Operator precedence
Operator type Individual operators
member .
call / create instance () new
negation/increment ! ~ - + ++ -- typeof void delete
multiply/divide * / %
addition/subtraction + -
bitwise shift << >> >>>
relational < <= >>= in instanceof
Equality == != === !==
bitwise-and &
bitwise-xor ^
bitwise-or |
logical-and &&
logical-or ||
conditional ?:
assignment = += -= *= /= %= <<= >>= >>>= &= ^= |=
comma ,

Більш детальна версія цієї таблиці, пов'язана з посиланнями на додаткові деталі про всіх операторів, які можуть бути в JavaScript Reference .

Expressions

An expression is any valid unit of code that resolves to a value.

Всі syntactically valid expression resolves to some value but conceptually, there are two types of expressions: with side effects (for example: those that assign value to a variable) and those that in some evaluate and therefore resolve to a value.

The expression x = 7 is an example of the first type. This expression uses the = operator to assign the value seven to the variable x . The expression itself evaluates to seven.

The code 3 + 4 is an example of the second expression type. Цей вираз використовує + operador до іншого три і чотири досі без відповідності результату, 7, to a variable.

JavaScript має наступні категорії:

Primary expressions

Основні ключові слова та зображення у JavaScript.

this

Використовуйте це слово, щоб refer to the current object. У загальному, це refers to calling object in a method. Use this either with the dot or the bracket notation:

This["propertyName"] this.propertyName

Suppose a function called validate validates an object"s value properties, given the object and the high and low values:

Function validate(obj, lowval, hival) ( if ((obj.value)< lowval) || (obj.value >hival)) console.log("Invalid Value!"); )

Ви можете зателефонувати в будь-який спосіб елемента's на змінному місці handler, використовуючи цей pass it до форми елемента, як в наступному тексті:

Введіть номер між 18 і 99:

Grouping operator

Групування оператора () controls precedence of evaluation in expressions. Для прикладу, ви можете перевірити multiplication and division first, then addition and subtraction to evaluate addition first.

Var a = 1; var b = 2; var c = 3; // default precedence a+b*c//7 / which is equivalent to a * c + b * c // 9

Left-hand-side expressions

Правила значення є значенням для оцінки.

new

Ви можете використовувати новий оператор для створення інсталяції user-defined object type або one of the built-in object types. Use new as follows:

Var objectName = New objectType();

super

Super keyword is used to call functions on an object"s parent. It is useful with classes to call the parent constructor, for example.

Super(); // Calls the parent constructor. super.functionOnParent();

Spread operator

Сприйнятий функціонал дозволить, щоб expanded in places де multiple arguments (for function calls) або multiple elements (for array literals) є expected.

Example:Все, якщо ви маєте array і хочете створити новий array з існуючим один з його частин, то літературний синтаксіон не є довгим достатнім і ви будете fallback до imperative code, використовуючи combination of push , splice , concat , etc. With spread syntax this becomes much more succinct:

Var parts = ["shoulders", "knees"]; var lyrics = ["head", ...parts, "and", "toes"];

Схоже, швидкий оператор роботи з функцією calls:

Function f(x, y, z) ( ) var args = ; f(...args);

Спочатку коротко для висловлювання на JavaScript.

Вирази JavaScript

У мові JavaScript є інструкції та вирази.

Інструкції не повертають значень.

Вирази завждиповертають якісь значення. Коли інтерпретатор бачить вираз, він обчислює його значення та замінює вираз його значенням.

Вирази бувають простими та складовими. Прості вирази не включають інші вирази.

До простих виразів відносяться:

  1. Ідентифікатори: someVar (ім'я змінної);
  2. Літерали: "рядок" або 675 (число, або числовий літерал);
  3. Деякі ключові слова, наприклад, this ;

Коли парсер виявляє ідентифікатор, спочатку потрібно обчислити його значення, тобто, наприклад, замінити ім'я змінної її значенням.

Значення літералу буде таким, яким воно прописане кодом скрипта.

Оператори та складні вирази JavaScript

Щоб об'єднати кілька простих виразів в одне складне, використовується оператори.

Оператори бувають:

  • Унарні (один операнд).
  • Бінарні (два операнди).
  • Тернарний оператор? в JavaScript (три операнди, є тільки один тернарний оператор).

Операнд - то простий вираз, якого застосовується оператор.

Наприклад, арифметичний оператор додавання "+" є бінарним оператором. Він підсумовує лівий та правий операнд та повертає суму.

Var digit = 4+7;

До речі, привласнення відбувається за допомогою оператора присвоєння "=". Цей оператор обчислює значення правого операнда та надає його лівому операнду.

JavaScript має унарний плюс, у нього існує тільки один операнд. Унарний плюс не є арифметичним оператором, він перетворює операнд на число.

Var myVar = "7"; document.write(typeof(myVar) + "
"); // Надрукує в документі string myVar = + myVar; document.write(typeof(myVar) + "
"); // Надрукує в документі number

Спочатку змінна myVar містила рядок "7", це літерал рядкового типу (string), а не числового (number). За допомогою оператора унарний плюс ми перетворили рядковий літерал на числовий.

Арифметичні операції

Арифметичні операції – це всім відомі математичні дії.

Можливо оператор % (залишок від розподілу) потребує пояснення. 9 ділиться на 5 із залишком 4 саме цей залишок і повертає цей оператор. Також його називають взяттям за модулем. При використанні цілих чисел результат роботи цього оператора також буде цілим числом. При оперуванні числами з точкою, що плаває, результатом буде число з плаваючою точкою.

5.5 % 2.2 = 1.1

При арифметичних операціях слід пам'ятати, що при некоректному їх виконанні вони можуть призвести до результатів:

  • NaN (Not a Number) – не число.
  • Infinity – нескінченність.

Ось до чого приведе розподіл на нуль:

Var myVar = 0/0; document.write("Значення змінної: " + myVar + ", її тип: " + typeof(myVar) + "
");

Операції порівняння

Операції порівняння застосовуються зіставлення виразів. Вираз з умовним операторомповертає булеве значення - істина або брехня (true/false).

Операції порівняння можна проводити і з рядками, про це буде в іншому уроці. Єдина умова правильного результату - зіставляти дані одного й того самого типу. Інакше JavaScript спробує перевести дані з одного типу до іншого, а це не завжди вдається. Щоб уникнути помилок, порівнюйте дані лише одного типу.

Операції привласнення

Найбільш очевидним прикладом операції присвоєння є просте присвоєння (=). Цей оператор (=) використовується для визначення значення змінної.

Але є ще низка операцій привласнення, які є скороченнями.

Логічні операції

Логічні операції часто використовуються з конструкцією if else в JS. Саме на прикладах цієї конструкції буде продемонстровано їхню роботу. Але спочатку перелік логічних операторів.

Тепер найпростіші приклади:

If (true && true) document.write("Це працює!"
"); if (true || false) document.write("Це працює!
"); if (!false) document.write("Це працює!
");

Розберемо ці приклади:

Оператор логічне І (&&) поверне істину, якщо обидва операнди істини.

Оператор логічне АБО (||) поверне істину, якщо хоч один операнд є істиною.

Оператор логічне НЕ (!) приймає один операнд та змінює значення істина/брехня на зворотне.

Унарні оператори

Унарні оператори – це оператори з одним операндом. Ось кілька таких операторів:

  • ++ – зростання на 1 (increment). Може бути префіксне та постфіксне, про це нижче.
  • -- - Зменшення на 1 (decrement). Може бути префіксне та постфіксне, про це теж нижче.
  • + - Унарний плюс.
  • - Унарний мінус.

Унарний мінус

Унарний мінус змінює виразний знак на протилежний. Наприклад, коли ви пишіть у програмі -100, ви просто застосовуєте до числового літералу 100 унарний мінус.

Потрібно точно розуміти, як працює унарний мінус - він повертає значення операнда з протилежним знаком. Ось приклад як правильно використати унарний мінус:

Var myVar = -100; document.write(-myVar + " - унарний мінус спрацював, але змінна також = " + myVar + ").
"); myVar = -myVar; document.write("Тепер змінна = "+ myVar +".
");

Наведемо безглуздий приклад подвійного унарного мінусу. Думаю в освітніх цілях він буде корисним:

Var myVar = -100; document.write(--myVar + " - це інкремент, а не подвійний унарний мінус."
"); document.write("Тепер змінна = "+ myVar + ").
"); document.write(-(-myVar) + "а це подвійне застосування унарного мінусу.
");

Унарний плюс

Унарний плюс не робить жодних математичних дій. Він наводить літерал до числового типу.

Var myVar = "78687"; document.write(typeof(myVar) + "."
"); myVar = + myVar; document.write(typeof(myVar) + ".
");

Інкремент та декремент

У програмуванні часто потрібно збільшувати чи зменшувати значення змінної на одиницю. Для цього є унарні оператори:

  • ++ – зростання на 1 (increment).
  • -- - Зменшення на 1 (decrement).

На відміну від унарного плюсу та мінусу інкремент та декремент змінює значення змінної при виклику.

Var myVar = 10; document.write(++myVar + "."
"); document.write(myVar + ").
");

Декремент (--) діє аналогічно.

Тепер розглянемо префіксне та постфіксне використання цих операторів.

  • ++ myVar – префіксне зростання на 1.
  • myVar++ – постфіксне зростання на 1.

Різниця така:

  • Префіксне використання цих операторів спочатку обчислює значення унарного оператора, а потім використовує результат у виразі.
  • Постфіксне використання спочатку обчислює вираз, а потім виконує унарний оператор (++ або -).

У цьому вам допоможе розібратися простий приклад:

Var myVar = 10; document.write((++myVar + 5) + "."

"); var myVar = 10; document.write((myVar++ + 5) + ".
"); document.write("Змінна =" + myVar + ".
");

Інкремент і декремент допускається використовувати лише зі змінними, застосовувати їх до числових літералів не можна. Простіше кажучи код ++7 помилився в сценарії.

Інші оператори

У мові JavaScript є інші оператори:

  • Тернарний (з трьома операндами) оператор

Вирази у JavaScriptявляють собою комбінації операндіві операторів.

Операціїу виразах виконуються послідовно відповідно до значення пріоритету (що більше значення пріоритету, тим він вищий). Результат, що повертається, не завжди має значення того ж типу, що і тип оброблюваних даних. Наприклад, в операціях порівняння беруть участь операнди різних типів, але результат, що повертається завжди буде логічного типу.

Рис. 1. Структура виразу JavaScript

Операнди- Це дані, що обробляються сценарієм JavaScript. Як операнди можуть бути як прості типи даних, так і складні, а також інші вирази.

Оператори— це символи мови, які виконують різні операції з даними. Оператори можуть записуватись за допомогою символів пунктуації або ключових слів.

Залежно від кількості операндів розрізняють такі типи операторів:
унарний- В операції бере участь один операнд;
бінарний- В операції беруть участь два операнди;
тернарний— комбінує три операнди.

Найпростіша форма вираження літерал- Щось, що обчислюється саме в себе, наприклад, число 100, рядок "Hellow world". Змінна теж може бути виразом, тому що вона обчислюється у надане їй значення.

Вирази та оператори в JavaScript

1. Арифметичні оператори

Арифметичні операторипризначені для виконання математичних операцій, вони працюють з числовими операндами (або змінними, що зберігають числові значення), повертаючи як результат числове значення.

Якщо один з операндів є рядком, інтерпретатор JavaScript спробує перетворити його на числовий тип, а потім виконати відповідну операцію. Якщо перетворення типів виявиться неможливим, буде отримано результат NaN (не число).

Таблиця 1. Арифметичні оператори
Оператор/Операція Опис Пріоритет
+ Додавання Складає числові операнди. Якщо один з операнда - рядок, то результатом виразу буде рядок. 12
- Віднімання Виконує віднімання другого операнда з першого. 12
- Унарний мінус Перетворює позитивне число на негативне, і навпаки. 14
* Множення Примножує два операнди. 13
/ Поділ Розділяє перший операнд на другий. Результатом розподілу може бути як ціле, і число з плаваючою точкою. 13
% Ділення за модулем (залишок від розподілу) Обчислює залишок, що отримується при цілісному поділупершого операнда на другий. Застосовується як до цілих чисел, так і до числа з плаваючою точкою. 13
var x = 5, y = 8, z; z = x + y; // Поверне 13 z = x - y; // Поверне -3 z = - y; // Поверне -8 z = x * y; // Поверне 40 z = x / y; // Поверне 0.625 z = y% x; // Поверне 3

2. Оператори привласнення

Оператори привласненнявикористовуються для присвоєння значень змінним. Комбіновані оператори дозволяють зберегти первісне та наступне значення в одній змінній.

var a = 5; // привласнюємо змінною a числове значення 5 var b = "hellow"; // Зберігаємо в змінному b рядок hellow var m = n = z = 10; // привласнюємо змінним m, n, z числове значення 10 x + = 10; // рівнозначно x = x + 10; x -= 10; // рівнозначно x = x – 10; x * = 10; // рівнозначно x = x * 10; x /= 10; // рівнозначно x = x/10; x % = 10; // рівнозначно x = x%10;

3. Оператори інкременту та декременту

Операції інкременту та декрементує унарними і збільшують і зменшують значення операнда на одиницю. Як операнда може бути змінна, елемент масиву, властивість об'єкта. Найчастіше такі операції використовуються збільшення лічильника в циклі.

var x = y = m = n = 5, z, s, k, l; z = ++x * 2; /* внаслідок обчислень поверне значення z = 12, x = 6, тобто. значення x спочатку збільшується на 1, а після виконується операція множення */s = y++*2; /* внаслідок обчислень поверне значення s = 10, y = 6, тобто. спочатку виконується операція множення, а після змінної y зберігається збільшене на 1 значення */ k = --m * 2; // Поверне значення k = 8, m = 4 l = n-- * 2; // Поверне значення l = 10, n = 4

4. Оператори порівняння

Оператори порівняннявикористовуються для порівняння операндів, результатом виразу може бути одне з двох значень - true або false. Операндами можуть бути не тільки числа, а й рядки, логічні значеннята об'єкти. Проте порівняння може виконуватися лише для чисел і рядків, тому операнди, які є числами чи рядками, перетворюються.

Якщо обидва операнди не можуть бути успішно перетворені на числа або рядки, оператори завжди повертають false .

Якщо обидва операнди є рядками/числами або можуть бути перетворені на рядки/числа, вони будуть порівнюватися як рядки/числа.

Якщо один операнд є рядком/перетворюється на рядок, а інший є числом/перетворюється на число, оператор спробує перетворити рядок на число і виконати порівняння чисел. Якщо рядок не є числом, він перетворюється на NaN і результатом порівняння буде false .

Найчастіше операції порівняння використовуються при організації розгалужень у програмах.

Таблиця 4. Оператори порівняння
Оператор/Операція Опис Пріоритет
== Рівність Перевіряє дві величини на збіг, припускаючи перетворення типів. Повертає true якщо операнди збігаються, і false якщо вони різні. 9
!= Нерівність Повертає true, якщо операнди не рівні 9
=== Ідентичність Перевіряє два операнди на «ідентичність», керуючись суворим визначенням збігу. Повертає true якщо операнди рівні без перетворення типів. 9
!== Неідентичність Виконує перевірку ідентичності. Повертає true якщо операнди не рівні без перетворення типів. 9
> Більше Повертає true якщо перший операнд більше другого, в іншому випадку повертає false . 10
>= Більше чи одно Повертає true якщо перший операнд не менше другого, в іншому випадку повертає false . 10
Повертає true якщо перший операнд менше другого, в іншому випадку повертає false . 10
Повертає true якщо перший операнд не більше другого, в іншому випадку повертає false . 10
5 == "5"; // Поверне true 5! = -5.0; // Поверне true 5 === "5"; // поверне false false === false; // Поверне true 1! == true; // Поверне true 1! = True; // поверне false, оскільки true перетворюється на 1 3 > -3; // поверне true 3> = "4"; // поверне false

5. Логічні оператори

Логічні операторидозволяють комбінувати умови, що повертають логічні величини. Найчастіше використовуються в умовному вираженні if.

(2 < 3) && (3===3); // вернет true, так как выражения в обеих скобках дают true (x < 10 && x >0); // Поверне true, якщо значення x належить проміжку від 0 до 10! False; // поверне true

6. Побітові оператори

Побітові операторипрацюють з операндами як з 32-бітною послідовністю нулів і одиниць і повертають числове значення, що означає результат операції, записане в десятковій системічислення. Як операнди розглядаються цілі числа, дробова частина операнда відкидається. Побітові операції можуть використовуватися, наприклад, при шифруванні даних для роботи з прапорами, розмежування прав доступу.

Таблиця 6. Побітові оператори
Оператор/Операція Опис Пріоритет
& Побітовий І Якщо обидва біти дорівнюють 1 , то результуючий біт дорівнюватиме 1 . Інакше результат дорівнює 0 . 8
| Побітовий АБО Якщо один з операндів містить у позиції 1 результат також буде містити 1 в цій позиції, в іншому випадку результат в цій позиції буде дорівнює 0 . 6
^ Виключне АБО Якщо одне, і тільки одне значення містить 1 в будь-якій позиції, то результат буде містити 1 в цій позиції, в іншому випадку результат в цій позиції буде дорівнює 0 . 7
~ Заперечення Виконується операція побитового заперечення над двійковим уявленням значення виразу. Будь-яка позиція, що містить 1 у вихідному вираженні, замінюється на 0 . Будь-яка позиція, що містить 0 у вихідному вираженні, дорівнює 0 . Позитивні числа починаються з 0 , негативні - з -1 тому ~ n == -(n+1) . 14
Оператор зсуває біти першого операнда вліво на число бітових позицій, встановлених другим операндом. Для заповнення позицій праворуч використовуються нулі. Повертають результат того самого типу, що лівий операнд. 11
>> Побитовий зсув праворуч Оператор зсуває біти першого операнда вправо число бітових позицій, встановлених другим операндом. Цифри, зсунуті межі діапазону, видаляються. Найстарший біт (32й) не змінюється, щоб зберегти знак результату. Якщо перший операнд позитивний, старші біти результату заповнюються нулями; якщо перший операнд негативний, старші біти результату заповнюються одиницями. Зсув значення вправо на одну позицію еквівалентний поділу на 2 (з відкиданням залишку), а зсув праворуч на дві позиції еквівалентний поділу на 4 і т. д. 11
>>> Побитовий зсув праворуч без урахування знака Оператор зсуває біти першого операнда вправо число бітових позицій, встановлених другим операндом. Ліворуч додаються нулі незалежно від знака першого операнда. Цифри, зсунуті межі діапазону, видаляються. 11
var x = 9, y = 5, z = 2, s = -5, result; // 9 еквівалентно 1001; 5 еквівалентно 0101 result = x & y; // Поверне 1 (еквівалентно 0001) result = x | y; // Поверне 13 (еквівалентно 1101) result = x ^ y; // поверне 12 (еквівалентно 1100) result = ~ y; // Поверне -6 (еквівалентно 1100) result = x<< y; // вернет 288 (эквивалентно 100100000) result = x >> z; // Поверне 2 (еквівалентно 10) result = s >>> z; // поверне 1073741822 (еквівалентно 1111111111111111111111111111110)

7. Строкові оператори

Існує кілька операторів, які працюють із рядками особливим чином.

"1" + "10"; // Поверне "110" "1" + 10; // Поверне "110" 2 + 5 + "кольорових олівців"; // Поверне "7 кольорових олівців" "Кольорових олівців" + 2 + 5; // Поверне "Кольорових олівців 25" "1" > "10"; // поверне false "10"<= 10; // вернет true "СССР" == "ссср"; // вернет false x = "micro"; x+= "soft"; // вернет "microsoft"

8. Спеціальні оператори

Таблиця 8. Спеціальні оператори
Оператор/Операція Опис Пріоритет
. Звернення до якості Здійснює доступ до якості об'єкта. 15
, Множинне обчислення Обчислює кілька незалежних виразів, записаних в один рядок. 1
Індексація масиву Здійснює доступ до елементів масиву або властивостей об'єкта. 15
() Виклик функції, угруповання Групує операції чи викликає функцію. 15
typeof Визначення типу даних Унарний оператор повертає тип даних операнда. 14
instanceof Перевірка типу об'єкта Оператор перевіряє, чи є об'єкт екземпляром певного класу. Лівий операнд має бути об'єктом, правий – повинен містити ім'я класу об'єктів. Результат буде true , якщо об'єкт, вказаний ліворуч, є екземпляр класу, зазначеного праворуч, інакше - false . 10
in Перевірка наявності якості Як лівий операнда має бути рядок, а правим - масив або об'єкт. Якщо ліве значення є властивістю об'єкта, результат true повернеться . 10
new Створення об'єкту Оператор створює новий об'єкт з невизначеними властивостями, потім викликає функцію-конструктор його ініціалізації (передачі параметрів). Також може застосовуватись для створення масиву. 1
delete Видалення Оператор дозволяє видаляти властивість об'єкта або елемент з масиву. Повертає true , якщо видалення пройшло успішно, інакше false . У разі видалення елемента масиву його довжина не змінюється. 14
void Визначення виразу без значення, що повертається Унарний оператор, відкидає значення операнда і повертає underfined . 14
?: Операція умовного вираження Тернарний оператор дозволяє організувати просте розгалуження. У виразі беруть участь три операнди, перший повинен бути логічним значенням або перетворюватися на нього, а другий і третій - будь-якими значеннями. Якщо перший операнд дорівнює true, то умовний вираз набуде значення другого операнда; якщо false – то третього. 3
document.write("hello world"); // Виводить на екран рядок hello world i = 0, j = 1; // зберігає значення змінних function1(10, 5); // виклик функції function1 з параметрами 10 та 5 var year = ; // Створює масив з елементами typeof (a:1); // Поверне "object" var d = new Date(); // створюємо новий об'єкт за допомогою конструктора Date() d instanceof Date; // поверне true var mycar = (make: "Honda", model: "Accord", year: 2005); "make" in mycar; // Поверне true var obj = new Object (); // створює порожній об'єкт var food = ["milk", "bread", "meat", "olive oil", "cheese"]; delete food; // Видаляє четвертий елемент з масиву food x > 10? x*2: x/2; // повертає значення x * 2, якщо x > 10, інакше x / 2

9. Коментарі в JavaScript

Однорядковий коментар: перед текстом коментаря необхідно поставити символи // .

© 2022 androidas.ru - Все про Android