JavaScript. Специальные операторы

Специальные операторы


Содержание


Поиск на других ресурсах:

1. Перечень специальных операторов

В языке JavaScript специальные операторы выполняют всевозможные важные функции. К этим операторам относятся:

  • условный оператор ?:. Этот оператор еще называется тернарным оператором, поскольку для получения результата требует трех операндов;
  • оператор delete;
  • оператор in;
  • оператор instanceof;
  • оператор new;
  • оператор this;
  • оператор typeof;
  • оператор void;
  • оператор ‘ , ‘ (запятая).

 

2. Тернарный оператор ? :

Тернарный оператор ?: использует три операнда для получения результата. Общая форма использования оператора

res = condition ? expression1 : expression2

здесь

  • condition – условное выражение, результатом которого является значение true или false;
  • expression1 – вычисляемое выражение, если condition = true;
  • expression2 – вычисляемое выражение, если condition = false;
  • res – результат, получаемый вследствие вычисления одного из выражений expression1 или expression2.

Тернарный оператор ?: может быть заменен инструкцией if-else.

Пример.

// Тернарный оператор ?:
// 1. Вычислить максимальное из двух чисел x, y
var x, y
var res1
x = 8
y = 5
res1 = (x > y) ? x : y // res1 = x = 8

// 2. Получить уведомление о равенстве/неравенстве строк
var s1 = "abcd"
var s2 = "abcde"
var res2 = (s1 == s2) ? "Strings are equal." : "Strings are not equal"

 

3. Оператор in

Оператор in предназначен для определения наличия заданного значения в объекте. Общая форма использования оператора

value in obj

здесь

  • obj – объект;
  • value – значение, проверяемое на наличие в объекте obj.

Результатом работы оператора может являться значение true или false.

Пример.

// Оператор in
// Проверка, есть ли в массиве Days есть элемент с индексом 5
var Days = [ "Monday", "Tuesday", "Wednesday", "Thursday", 
    "Friday", "Saturday", "Sunday" ];

if (5 in Days) {
  document.write("Index 5 is in the array Days.")
}
else
{
  document.write("Index 5 is not in the array Days.")
}

 

4. Оператор instanceof

Оператор instanceof позволяет определить, относится ли указанный объект к заданному типу. Общая форма использования оператора

obj instanceof type

здесь

  • obj – экземпляр (объект) некоторого типа;
  • type – тип (Number, String, …).

Пример.

// Оператор instanceof
'use strict';

// 1. Тип String
// Создать объект типа String
var str = new String()

if (str instanceof String)
  document.write("str is of type String")
else
  document.write("str is not of type String")

// 2. Объект типа Number
var x = Number(10)

if (x instanceof Number)
  document.write("x is of type Number")
else
  document.write("x is not of type Number")

 

5. Оператор new. Создать экземпляр объекта

Оператор new предназначен для создания экземпляра объекта. Оператор имеет следующую общую форму использования

obj = new Type()

здесь

  • Type – некоторый тип. Это может быть один из стандартных типов (Number, String и другие) или тип, определяемый программистом;
  • obj – имя объекта, для которого создается экземпляр.

Пример.

// Оператор new
// Создать объект типа Number
var num = new Number(23)

// Создать объект типа String
var str
str = new String("Hello")

 

6. Оператор this. Получить текущий объект

Использование ключевого слова this зависит от контекста, в котором оно применяется. Подробный обзор применения ключевого слова this в программах не является предметом данной темы.

В данной теме рассматривается случай использования этого объекта для получения ссылки на этот объект. Для этого случая применение this выглядит следующим образом

this.item

Здесь item – некоторый элемент объекта (переменная, объект, функция и т.п.).

Пример.

'use strict';

var Point = {
  x: 10,
  y: 10,

  PrintX: function () {
    console.log("x = ", this.x) // this - ссылка на объект Point
  },

  PrintY: function () {
    console.log("y = ", this.y) // this - ссылка на объект Point
  },

  PrintXY: function () {
    this.PrintX() // вызов методов текущего объекта
    this.PrintY()
  }
}

var x = 5
Point.PrintX() // x = 10

var y = 55
Point.PrintY() // y = 10

Point.PrintXY()

Результат

x = 10
y = 10
x = 10
y = 10

 

7. Оператор typeof. Получить тип в виде строки

С помощью оператора typeof можно получить название типа объекта в виде строки. Общая форма использования оператора

typeName = typeof(obj)

здесь

  • obj – некоторый объект;
  • typeName – переменная строкового типа, содержащая название типа объекта obj.

Пример.

'use strict';

// Оператор typeof - получить строковое представление типа
var Line = {
  x1: 10,
  y1: 10,
  x2: 20,
  y2: 25,

  Length: function () {
    return len = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
  }
}

var typeName = typeof(Line) // typeName = "object"
console.log(typeName)

var t = 77
typeName = typeof (t) // typeName = "number"
console.log(typeName)

var s = "Hello!"
typeName = typeof (s) // typeName = "string"
console.log(typeName)

Результат

object
number
string

 

8. Оператор void.  Провести вычисление без возврата значения

Вычисление выражения операнда без возврата значения производится оператором void. Оператор void вычисляет заданное выражение и возвращает undefined. Общая форма использования оператора имеет вид

void expression

здесь

  • expression – выражение или функция.

Пример.

В примере показано применение оператора void для функции и выражения.

'use strict';

// Оператор void
// 1. Использование void с функцией
// Функция, которая ничего не возвращает
void function Hello() {
  console.log("Hello, world!")
}()

// 2. Использование void с выражением
var b = void (2 == '2')   // b = undefined
console.log("b = ", b)

var res = void (25 * 3)   // res = undefined
console.log("void (25*3) => ", res)

res = void 25 * 3   // res = NaN
console.log("void 25*3 => ", res)

Результат

Hello, world!
b = undefined
void (25*3) => undefined
void 25*3 => NaN

 

9. Оператор ‘ , ‘ (запятая). Инициализация нескольких переменных, несколько присваиваний

Оператор ‘ , ‘ используется для выполнения нескольких операций присваивания, других операций внутри циклов или инициализации переменных.

Пример.

'use strict';

// Оператор , (запятая)
// 1. Инициализация переменных
var x = 5, y = 8
console.log("x = ", x, "; y = ", y)

// 2. Инициализация массива значениями
var A = [2, 3, 3, 4]
console.log("A = ", A)

// 3. Несколько присваиваний
var a, b, c
a = 3, b = 7, c = 11
console.log("a = ", a, ", b = ", b, ", c = ", c)

// 4. Использование запятой в цикле
// Вывести квадраты чисел от 1 до 5 в оригинальный способ
for (var i = 1, j = 1; i <= 5, j <= 5; i++, j++)
  console.log(i * j)

Результат

x = 5 ; y = 8
A = [ 2, 3, 3, 4 ]
a = 3 , b = 7 , c =   11
1
4
9
16
25

 


Связанные темы