Вирази та оператори - JavaScript, MDN
Повний та детальний список операторів та виразів також доступний у цьому посібнику.
Наприклад: 3+4 чи x*y .
У свою чергу унарна операція використовує один операнд перед або після оператора:
Наприклад: x++ або ++x.
Оператори присвоєння
Через війну операції присвоювання операнду зліва оператора присвоювання (знак "=") встановлюється значення , яке береться з правого операнда. Основним оператором присвоєння є =, він надає значення правого операнда операнду, що знаходиться зліва. Таким чином, вираз x = y означає, що x надається значення y.
Існують також складові оператори присвоєння, які використовуються для скороченого подання операцій, описаних у таблиці:
Деструктуризація
Оператори порівняння
Примітка: (=> ) не оператор, а нотація Стрілець.
Арифметичні оператори
Арифметичні оператори використовують як своїх операндів числа (також літерали або змінні) і як результат повертають одне числове значення. Стандартними арифметичними операторами є додавання (+), віднімання (-), множення (*), і поділ (/). При роботі з числами з плаваючою точкою ці оператори працюють аналогічно їх роботі в більшості інших мов програмування (зверніть увагу, що поділ на нуль повертає нескінченність Infinity). Наприклад:
Бітові (порозрядні) оператори
Побутові логічні оператори
Основний зміст роботи бітових логічних операторів полягає в наступному:
- Операнди перетворюються на 32-бітові цілі числа і представляються як послідовності біт (нулів і одиниць). Числа, що мають понад 32 біти, будуть скорочені.Наприклад, наступне число має більше 32 бітів і сконвертується в 32-бітне:
- Кожен біт першого операнда пов'язується з відповідним бітом другого операнда: перший біт з першим бітом, другий біт - з другим і так далі.
- До кожної пари біт застосовується заданий оператор, і побітово формується підсумковий результат.
Наприклад, двійковим уявленням числа 9 є 1001, а двійковим уявленням п'ятнадцяти - 1111. Результати застосування до цих чисел бітових логічних операторів виглядають так:
00000000. 00001111 = 1111 1111 . 11110000
00000000. 0000 1001 = 1111 1111. 1111 0110
Зверніть увагу, що всі 32 біти перетворюються з використанням бітового оператора НЕ, і що величини з найбільш значущим лівим бітом рівним 1 являють собою негативні числа (в поданні доповнення до двох).
Бітові оператори зсуву
Бітові оператори зсуву використовують два операнди: перший представляє величину, що підлягає зсуву, а другий операнд вказує число бітових позицій на яке має бути зрушений перший операнд. Напрямок операції зсуву визначається оператором, що використовується.
Оператори зсуву перетворять свої операнди на 32-бітові цілі числа і повертають результат того самого типу, яким є лівий операнд.
Оператори зсуву перераховані у таблиці.
Логічні оператори
Логічні оператори зазвичай використовуються з булевими (логічними) значеннями; при цьому значення, що повертається ними, також є булевим. Однак оператори && і фактично повертають значення одного з операндів, тому, якщо ці оператори використовуються з небулевими величинами, то величина, що ними повертається, також може бути не булевою. Логічні операториописані у наступній таблиці.
Прикладами виразів, які можуть бути перетворені на false є: null, 0, NaN, порожній рядок ("") або undefined.
Наступний код показує приклади використання оператора && (логічне І).
Наступний код показує приклади використання оператора (логічне АБО).
Наступний код демонструє приклади використання оператора! (логічне НЕ).
Скорочена оцінка
Оскільки логічні висловлювання обчислюються ліворуч, вони перевіряються на можливість виконання скороченої оцінки з використанням наступних правил:
- false && anything – скорочення з результатом false.
- true anything – скорочення з результатом true.
Правила логіки гарантують, що ці обчислення завжди коректні. Зверніть увагу, що частина " anything " наведених вище виразів не обчислюється, таким чином вдається уникнути будь-яких побічних ефектів обчислення даної частини.
Рядкові оператори
На додаток до операторів порівняння, які можуть використовуватися з рядковими значеннями, оператор (+) дозволяє об'єднати два рядки, повертаючи при цьому третій рядок, який є об'єднанням двох рядків-операндів:
Скорочений оператор надання += також може бути використаний для об'єднання (конкатенації) рядків:
Умовний (тернарний) оператор
val1 і val2 обов'язково повинні щось повертати, тому в цій конструкції не можна використовувати continue чи break
Якщо condition (умова) - істина, оператор приймає значення val1 . В іншому випадку оператор набуває значення val2 . Ви можете використовувати умовний оператор у всіх випадках, де можна використовувати стандартний оператор.
Даний вираз надає значення "adult" змінної status, якщо age має значення 18 або більше. В іншому випадку змінній status надається значення "minor".
Оператор кома
Оператор кома ( , ) Обчислює обидва операнда і повертає значення останнього операнда. Цей оператор переважно використовується всередині циклу for , що дозволяє при кожному проходженні циклу одночасно оновлювати значення кількох змінних.
Наприклад, якщо a є двовимірним масивом, кожен рядок якого містить 10 елементів, то наступний код з використанням оператора кома дозволяє виконувати одночасне збільшення двох змінних. Цей код виводить на екран значення діагональних елементів масиву:
Унарні оператори
Унарна операція - операція лише з одним операндом.
Оператор delete виконує видалення об'єкта, властивості об'єкта або елемента масиву із заданим індексом. Синтаксис оператора:
де objectName є ім'я об'єкта, property - властивість об'єкта, а index - ціле число, що вказує на положення (номер позиції) елемента в масиві.
Четвертий варіант використання дозволяє видалити властивість об'єкта, але допускається лише усередині with .
Ви можете використовувати оператор delete для видалення змінних, оголошених неявно, але ви не можете видаляти змінні, оголошені за допомогою var .
Після застосування оператора delete властивість елемента змінюється на undefined. Оператор delete повертає true якщо виконання операції можливе; оператор повертає false, якщо виконання операції неможливе.
Видалення елементів масиву
Видалення елемента масиву не впливає на довжину масиву. Наприклад, якщо ви видалите a[3] , елемент a[4] залишиться a[4], a[3]стане undefined.
Якщо ви хочете, щоб елемент залишався в масиві, але мав значення undefined, використовуйте ключове слово undefined замість оператора delete . У наступному прикладі елементу trees[3] надано значення undefined , але елемент при цьому залишається в масиві:
Оператор typeof
Оператор типувикористовується з наступним способом:
Оператор типуповертає рядок позначає тип необчисленого операнда. Значення operand може бути рядком, змінним, дескриптором, або об'єктом, тип якого слід визначити. Дужки навколо операнда необов'язкові.
Припустимо, ви визначаєте такі змінні:
Оператор типуповертає наступні результати для цих змінних:
Для дескрипторів true і null оператор typeof повертає наступні результати:
Для чисел і рядків оператор типуповертає наступні результати:
Для властивостей оператор типуповертає тип значення даної властивості:
Для методів і функцій оператор типуповертає наступні результати:
Для вбудованих об'єктів оператор типуповертає наступні результати:
Оператор void
Оператор void використовується будь-яким із наступних способів:
Ви можете використовувати оператор void для вказівки на те, що операнд-вираз є гіпертекстовим посиланням. При цьому вираз обробляється, але не завантажується у поточний документ.
Наведений нижче код створює гіпертекстове посилання, яке підтверджує відправлення форми при натисканні на ній користувачем:
Оператори відносини
Оператор відносини порівнює свої операнди і повертає результат порівняння у вигляді бульова значення.
Оператор in
Оператор in повертає true, якщо вказаний об'єкт має вказану властивість. Синтаксис оператора:
де propNameOrNumber - рядок чи числове вираз, що представляє ім'я властивості або індекс масиву, а objectName - ім'я об'єкта.
Деякі приклади способів використання оператора in:
Оператор instanceof
Оператор instanceof повертає true, якщо заданий об'єкт є об'єктом зазначеного типу. Його синтаксис:
де objectName - ім'я об'єкта, тип якого необхідно порівняти з objectType, а objectType - тип об'єкта, наприклад, Date або Array.
Використовуйте оператор instanceof , коли вам необхідно підтвердити тип об'єкта під час виконання програми. Наприклад, при перехопленні виключень ви можете створити різні програмні переходи для обробки винятків залежно від типу виключення, що обробляється.
Наприклад, наступний код використовує оператор instanceof для перевірки того, чи є об'єкт theDay об'єктом типу Date . Так як theDay дійсно є об'єктом типу Date , то програма виконує код, що міститься у затвердженні if .
Пріоритет операторів
Пріоритет операторів визначає порядок виконання при обчисленні висловлювання. Ви можете впливати на пріоритет операторів за допомогою дужок.
Наведена нижче таблиця визначає пріоритет операторів від найвищого до нижчого.
- + ++ - typeof void delete
Вираз є будь-який коректний блок коду, який повертає значення.
Концептуально, існують два типи виразів: ті, які надають змінної значення, і ті, які обчислюють значення без його присвоювання.
Вираз x = 7 є прикладом виразу першого типу. Цей вислів використовує оператор = для присвоєння змінної x значення 7 . Сам вираз також дорівнює 7.
Код 3+4 є прикладом вираження другого типу.Даний вираз використовує оператор "+" для складання чисел 3 і 4 без надання змінної отриманого результату 7.
Основні вирази
Оператор this
Використовуйте ключове слово для вказівки на поточний об'єкт. У загальному випадку це вказує на об'єкт, що викликається, якому належить даний метод. Використовуйте це так:
Припустимо, функція validate виконує перевірку якості value деякого об'єкта; заданий об'єкт, а також верхня та нижня межа величини даної властивості:
Ви можете викликати функцію validate для обробника події onChange для кожного елемента форми, використовуючи це для вказівки на елемент форми, як це показано в наступному прикладі:
Оператор угруповання
Оператор угруповання "дужки" ( ) контролює пріоритет обчислення виразів. Наприклад, ви можете перевизначити порядок - "множення і розподіл, а потім додавання та віднімання", так щоб, наприклад, щоб додавання виконувалося до множення:
Спрощений синтаксис створення масивів та генераторів
[for (x of y) x] Спрощений синтаксис для масивів. (for (x of y) y) Спрощений синтаксис для генераторів.
Спрощені синтаксиси існують у багатьох мовах програмування і дозволяють швидко збирати новий масив, заснований на існуючому. Наприклад:
Лівосторонні вирази
Значення зліва призначають значення праворуч.
Ви можете використовувати оператор new для створення екземпляра об'єкта користувача типу або одного з вбудованих об'єктів. Використовуйте оператор new таким чином:
Ключове слово використовується для виклику батьківського об'єкта. Це корисно і з класами для виклику конструктора батька, наприклад.
Оператор розширення
Оператор розширеннядозволяє виразу розширюватися в місцях з безліччю аргументів (для викликів функцій) або безлічі елементів (для масивів).
Приклад: Сьогодні, якщо у вас є масив і ви хочете створити новий з існуючою частиною першого, то літерального синтаксису масиву вже недостатньо, і ви повинні писати імперативний (без варіантів) код, використовуючи комбінацію push , splice , concat і т.д. Але з цим оператором код стає коротшим:
Подібним чином оператор працює із викликами функцій: