English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Операторы выполняют математические и логические операции над данными.
JavaScript имеет следующие типы операторов:
Арифметические операторы
Операторы присваивания
Сравнительные операторы
Битовое операторы
Логические операторы
Странные операторы
Условные (треугольные) операторы
Унарные операторы
Реляционные операторы
Арифметические операторы используются для выполнения арифметических операций с числами.
Арифметические операторы рассматривают числовые значения в качестве своих операндов и возвращают одно числовое значение.
Оператор | Описание | Пример | Определение | Протестируйте это |
---|---|---|---|---|
+ | Сложение | a + b | Сумма a и b | Протестируйте это |
- | У减ление | a - b | Разность a и b | Протестируйте это |
* | Множество | a * b | Произведение a и b | Протестируйте это |
** | Определение степени | a ** b | b-ая степень a | Протестируйте это |
/ | Деление | a / b | a делит на b | Протестируйте это |
% | Определение модуля (остатка) | a % b | Остаток от деления a на b | Протестируйте это |
++ | Увеличение | a ++ | a увеличивает на 1 | Протестируйте это |
-- | Уменьшение | a-- | a уменьшает на 1 | Протестируйте это |
Операторы присваиванияassign values to JavaScript variables.
Простая операция присваивания (=)assigns the value of its right operand to its left operand.
Оператор | Описание | Пример | Эквивалент | Протестируйте это |
---|---|---|---|---|
= | Присваивание | a = b | a = b | Протестируйте это |
+= | Сначала добавляем, а затем присваиваем | a += b | a = a + b | Протестируйте это |
-= | Сначала вычитаем, а затем присваиваем | a -= b | a = a - b | Протестируйте это |
*= | Сначала умножаем, а затем присваиваем | a *= b | a = a * b | Протестируйте это |
**= | Сначала берем степень, а затем присваиваем | a **= b | a = a ** b | Протестируйте это |
/= | Сначала делим, а затем присваиваем | a /= b | a = a / b | Протестируйте это |
%= | Сначала берем модуль, а затем присваиваем | a %= b | a = a % b | Протестируйте это |
Сравнительные операторы сравнивают два значения и возвращают логическое значение.
Оператор | Описание | Пример | Определение | Протестируйте это |
---|---|---|---|---|
== | Равенство | a == b | Если a равен b, то true | Протестируйте это |
=== | Совпадение | a === b | Если a равен b и принадлежит одному и тому же типу данных, то true | Протестируйте это |
!= | Не равенство | a != b | Если a не равен b, то true | Протестируйте это |
!== | Не равенство включает типы | a !== b | Если a не равен b и не является одним и тем же типом данных, то true | Протестируйте это |
> | Больше | a> b | Если a больше b, то истина | Протестируйте это |
< | Меньше | a <b | Если a меньше b, то истина | Протестируйте это |
>= | Больше или равно | a>= b | Если a больше или равно b, то истина | Протестируйте это |
<= | Меньше или равно | a <= b | Если a меньше или равно b, то истина | Протестируйте это |
Разница между (a == b) и (a === b):
== Если a равно b, то возвращает true
=== Если a равно b и они都属于Одного типавозвращает true
В условных операторах можно использовать сравнительные операторы для сравнения значений и перехода в разные потоки в зависимости от полученного результата.
В конце этого учебника вы узнаете, как использовать условные операторы.
Битовое оперирование рассматривает операнты как набор из 32 битов (нулей и единиц), а не как десятичные, шестнадцатеричные или восьмеричные числа.
Любой числовой операнд в этой операции будет преобразован в 32-битное число. Результат преобразуется обратно в значение JavaScript.
Оператор | Описание | Пример | Эквивалент | Результат | Дробное |
---|---|---|---|---|---|
& | И | 5&1 | 0101 и 0001 | 0001 | 1 |
| | ИЛИ | 5 | 1 | 0101 | 0001 | 0101 | 5 |
~ | Негатив | ~5 | ~0101 | 1010 | 10 |
^ | Исключающее ИЛИ | 5 ^ 1 | 0101 ^ 0001 | 0100 | 4 |
<< | Левое сдвиг | 5 << 1 | 0101 << 1 | 1010 | 10 |
>> | Знаковое правовое сдвиг | 5 >> 1 | 0101 >> 1 | 0010 | 2 |
>>> | Беззнаковое右овое сдвиг | 5 >>> 1 | 0101 >>> 1 | 0010 | 2 |
В предыдущем примере используется 4-битный беззнаковый пример. Но JavaScript использует 32-битные знаковые числа.
Таким образом, в JavaScript, ~5 не вернет 10. Он вернет -6.
~00000000000000000000000000000101 вернет 11111111111111111111111111111010
Логические операторы используются для определения логики между переменными или значениями.
Логические операторы обычно используются для комбинирования условий в условных операторах и возвращают логическое значение.
Оператор | Описание | Пример | Определение | Протестируйте это |
---|---|---|---|---|
&& | Логическое и | a && b | Если a и b истинны, то истина | Протестируйте это |
|| | Логическое или | a || b | Если a или b истинно, то истина | Протестируйте это |
! | Логическое не | !a | Если a не истинно, то истина | Протестируйте это |
Данный оператор + также можно использовать для объединения (склеивания) строк.
var str1 = "Hello"; var str2 = "World"; var str3 = str1 + " " + str2;Проверить, посмотри‹/›
Оператор сложения и присваивания += также может использоваться для объединения (соединения) строк.
var str1 = "Hey! "; str1 += "How r u doing?";Проверить, посмотри‹/›
При использовании на строках оператор + называется оператором объединения.
Условный оператор (трёхоператорный) является единственным оператором JavaScript, который принимает три операнда.
Описание позволяет получить один из двух значений в зависимости от условия. Грамматика:
condition ? val1 : val2
Еслиcondition результат вычисленияtrueЕслиval1В противном случае вернетсяval2.
Условный оператор можно использовать в любом месте, где используется стандартный оператор.
var status = (age >= 18) ? "взрослый" : "ребенок";Проверить, посмотри‹/›
Если возраст равен 18 годам или старше, то переменной status будет присвоено значение "взрослый". В противном случае, ей будет присвоено значение "ребенок".
Унарные операции выполняются с одним операндом.
В JavaScript содержится три унарных оператора:
Описание | Описание |
---|---|
delete | Удаляет объект, его свойства или элементы массива по указанному индексу |
typeof | Возвращает тип переменной |
void | Указывает выражение, требующее значения, но не возвращающее его |
Оператор delete может удалять объекты, их свойства или элементы массива по указанному индексу.
Если оператор delete может выполнить операцию, он возвращает true; в противном случае, он возвращает false. Если операция не может быть выполнена, возвращает false.
Если оператор delete успешно выполняет операцию, он устанавливает атрибут или элемент в undefined:
var user = {firstName:"Vishal", age:"22", color:"blue"}; delete user.firstName; // возвращает trueПроверить, посмотри‹/›
Когда оператор delete удаляет элемент массива, он удаляется из массива.
var fruits = ["Apple", "Mango", "Banana"]; delete fruits[0]; // delete "Apple"Проверить, посмотри‹/›
Примечание:При удалении элементов массива его длина не изменяется.
Оператор typeof возвращает тип переменной или выражения.
typeof "" // Возвращает "string" typeof "Vishal" // Возвращает "string" typeof "42" // Возвращает "string" (Число в кавычках является Строкой) typeof 42 // Возвращает "number" typeof true // Возвращает "boolean" typeof false // Возвращает "boolean" typeof undefined // Возвращает "undefined" typeof null // Возвращает "object" typeof {name:"Vishal", age:22} // Возвращает "object" typeof [2, 4, 6, 8] // Возвращает "object" (не "array", см. примечание ниже) typeof function myFunc(){} // Возвращает "function"Проверить, посмотри‹/›
Примечание:Оператор typeof возвращает "object" для массивов,因为在 JavaScript массивы являются объектами.
Вот список значений, возвращаемых оператором typeof:
Тип | Строка, возвращаемая typeof |
---|---|
Number | "number" |
String | "string" |
Boolean | "boolean" |
Object | "object" |
Function | "function" |
Undefined | "undefined" |
Null | "object" |
Оператор void specifies an expression that requires a value but does not return a value.
Следующий код создает гипертекстовую ссылку, которая не выполняет никаких действий при нажатии на нее.
<a href="javascript:void(0)">Нажмите здесь, чтобы ничего не сделать</a>Проверить, посмотри‹/›
Логические операторы сравнивают свои операнды и возвращает булево значение в зависимости от того, истинно ли сравнение.
В JavaScript есть два логических оператора:
Описание | Описание |
---|---|
in | Если указанное свойство содержится в указанном объекте, то возвращает true |
instanceof | Если объект является примером типа объекта, то возвращает true |
Если указанное свойство содержится в указанном объекте, оператор in возвращает true.
var user = {firstName:"Vishal", age:"22", color:"blue"}; "firstName" in user; // returns true "age" in user;// возвращает true "Food" in user; // возвращает falseПроверить, посмотри‹/›
При использовании оператора in с массивом Array необходимо указать номер индекса, а не значение, находящееся на данном индексе.
var fruits = ["Apple", "Mango", "Banana"]; var item1 = 0 in fruits; // возвращает true var item2 = 1 in fruits; // возвращает true var item3 = 2 in fruits; // возвращает true var item4 = 3 in fruits; // возвращает falseПроверить, посмотри‹/›
Если указанный объект принадлежит указанному типу объекта, то оператор instanceof возвращает true.
Для проверки типа объекта в время выполнения используйте оператор instanceof.
var myObj = new Date(); if (myObj instanceof Date) { // выполнимые утверждения {}Проверить, посмотри‹/›