Назад к вопросам
Junior
81
questionbank

Расскажи о типах операторов в JavaScript.

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Операторы в JavaScript делятся на несколько типов, каждый из которых выполняет определенные действия над операндами.

Основные типы операторов:

  • Арифметические операторы: Используются для выполнения математических операций.
  • Операторы присваивания: Присваивают значение переменной.
  • Операторы сравнения: Сравнивают два значения и возвращают булево значение (true или false).
  • Логические операторы: Выполняют логические операции над булевыми значениями.
  • Побитовые операторы: Выполняют операции на уровне отдельных битов чисел.
  • Тернарный оператор: Условный оператор, который присваивает значение переменной в зависимости от условия.
  • Оператор typeof: Возвращает строку, указывающую тип операнда.
  • Оператор instanceof: Проверяет, является ли объект экземпляром определенного класса или конструктора.
  • Оператор delete: Удаляет свойство объекта или элемент из массива.
  • Оператор void: Выполняет выражение, но возвращает undefined.
  • Оператор in: Проверяет, имеет ли объект указанное свойство.
  • Операторы spread (...) и rest (...): Для работы с итерируемыми объектами (массивы, строки) и параметрами функций.

Примеры:

// Арифметические
let sum = 5 + 3; // 8
let difference = 10 - 4; // 6
let product = 2 * 6; // 12
let division = 15 / 3; // 5
let remainder = 10 % 3; // 1
let exponentiation = 2 ** 3; // 8
let increment = 5;
increment++; // 6
let decrement = 8;
decrement--; // 7

// Присваивания
let x = 10;
x += 5; // x равно 15
x -= 3; // x равно 12
x *= 2; // x равно 24
x /= 4; // x равно 6
x %= 5; // x равно 1
x **= 3; // x равно 1

// Сравнения
console.log(5 == '5'); // true (нестрогое сравнение)
console.log(5 === '5'); // false (строгое сравнение)
console.log(10 > 5); // true
console.log(7 < 12); // true
console.log(8 >= 8); // true
console.log(4 <= 9); // true
console.log(5 != 'ten'); // true (нестрогое сравнение)
console.log(5 !== '5'); // true (строгое сравнение)

// Логические
let a = true;
let b = false;
console.log(a && b); // false (логическое И)
console.log(a || b); // true (логическое ИЛИ)
console.log(!a); // false (логическое НЕ)

// Тернарный оператор
let age = 18;
let status = (age >= 18) ? 'совершеннолетний' : 'несовершеннолетний';
console.log(status); // совершеннолетний

// typeof
console.log(typeof 'hello'); // string
console.log(typeof 123); // number
console.log(typeof true); // boolean
console.log(typeof {}); // object
console.log(typeof []); // object (важно: массив в JS - это особый тип объекта)
console.log(typeof null); // object (историческая ошибка в JS)
console.log(typeof undefined); // undefined
console.log(typeof function() {}); // function

// instanceof
class MyClass {}
let myObject = new MyClass();
console.log(myObject instanceof MyClass); // true
console.log(myObject instanceof Object); // true

// delete
let person = { name: 'Alice', age: 30 };
delete person.age;
console.log(person); // { name: 'Alice' }

// in
let car = { make: 'Toyota', model: 'Camry' };
console.log('make' in car); // true
console.log('year' in car); // false

// Spread и Rest
const numbers = [1, 2, 3];
const newNumbers = [...numbers, 4, 5]; // Spread: [1, 2, 3, 4, 5]

function sumAll(...args) { // Rest: собирает аргументы в массив
  return args.reduce((sum, current) => sum + current, 0);
}
console.log(sumAll(1, 2, 3, 4)); // 10

Понимание этих операторов фундаментально для написания логики на JavaScript.