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 виглядає наступним чином

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

 


Споріднені теми