--- title: Оператори присвоєння slug: >- conflicting/Web/JavaScript/Reference/Operators_1cd48548c16282df3883f99267726c3e tags: - JavaScript - Оператор translation_of: Web/JavaScript/Reference/Operators#Assignment_operators translation_of_original: Web/JavaScript/Reference/Operators/Assignment_Operators original_slug: Web/JavaScript/Reference/Operators/Оператори_присвоєння ---
{{jsSidebar("Operators")}}

Оператор присвоєння присвоює своєму лівому операнду значення, на підставі значення правого операнду.

{{EmbedInteractiveExample("pages/js/expressions-assignment.html")}}

Огляд

Базовим оператором присвоєння є оператор дорівнює (=), який присвоює значення свого правого операнда лівому операнду. Таким чином, x = y присвоює змінній x значення змінної y. Інші оператори присвоєння у своїй більшості є скороченнями для стандарних операцій, як це вказано у наступній таблиці з визначеннями та прикладами.

Назва Оператор скороченого запису Значення
Присвоєння x = y x = y
Присвоєння з додаванням x += y x = x + y
Присвоєння з відніманням x -= y x = x - y
Присвоєння з множенням x *= y x = x * y
Присвоєння з діленням x /= y x = x / y
Присвоєння остачі x %= y x = x % y
Присвоєння з піднесенням до степеня x **= y x = x ** y
Присвоєння з лівим зсувом x <<= y x = x << y
Присвоєння з правим зсувом x >>= y x = x >> y
Присвоєння з беззнаковим правим зсувом x >>>= y x = x >>> y
Присвоєння з побітовим І x &= y x = x & y
Присвоєння з виключним побітовим АБО x ^= y x = x ^ y
Присвоєння з побітовим АБО x |= y x = x | y

Присвоєння

Простий оператор присвоєння використовується для присвоєння змінній значення. Оператор присвоєння обчислює значення, що присвоюється. Можна використовувати ланцюжок присвоюваннь, щоб присвоїти одне значення декільком змінним. Дивіться приклад нижче.

Синтаксис

Оператор: x = y

Приклади

// Розглянемо такі змінні:
//  x = 5
//  y = 10
//  z = 25

x = y     // x дорівнює 10
x = y = z // x, y та z усі дорівнюють 25

Присвоєння з додаванням

Оператор присвоєння з додаванням додає значення правого операнду до змінної (лівого перанду) та записує у неї отриманий результат. Типи двох операндів визначають поведінку оператора. Таким чином, його результатом може стати або додавання або конкатенація. Для більш детального огляду дивіться {{jsxref("Operators/Arithmetic_Operators", "оператор додавання", "#Addition", 1)}}.

Синтаксис

Оператор:  x += y
Значення:  x  = x + y

Приклади

// Розглянемо такі змінні:
//  foo = 'foo'
//  bar = 5
//  baz = true


// число + число -> додавання
bar += 2 // 7

// булеве значення + число -> додавання
baz += 1 // 2

// булеве значення + булеве значення -> додавання
baz += false // 1

// число + рядок -> конкатенація
bar += 'foo' // "5foo"

// рядок + булеве значення -> конкатенація
foo += false // "foofalse"

// рядок + рядок -> конкатенація
foo += 'bar' // "foobar"

Присвоєння з відніманням

Оператор присвоєння з відніманням віднімає значення правого операнду від змінної (лівого перанду) та записує у неї отриманий результат. Дивіться {{jsxref("Operators/Arithmetic_Operators", "оператор віднімання", "#Subtraction", 1)}} для більш детального огляду.

Синтаксис

Оператор:  x -= y
Значення:  x  = x - y

Приклади

// Розглянемо такі змінні:
//  bar = 5

bar -= 2     // 3
bar -= 'foo' // NaN

Присвоєння з множенням

Оператор присвоєння з множенням помножує змінну (лівий операнд) на значення правого операнду та записує отриманий результат у змінну. Дивіться {{jsxref("Operators/Arithmetic_Operators", "оператор множення", "#Multiplication", 1)}} для більш детального огляду.

Синтаксис

Оператор:  x *= y
Значення:  x  = x * y

Приклади

// Розглянемо такі змінні:
//  bar = 5

bar *= 2     // 10
bar *= 'foo' // NaN

Присвоєння з діленням

Оператор присвоєння з діленням ділить змінну (лівий операнд) на значення правого операнду та записує отриманий результат у змінну. Дивіться {{jsxref("Operators/Arithmetic_Operators", "оператор ділення", "#Division", 1)}} для більш детального огляду.

Синтаксис

Оператор:  x /= y
Значення:  x  = x / y

Приклади

// Розглянемо такі змінні:
//  bar = 5

bar /= 2     // 2.5
bar /= 'foo' // NaN
bar /= 0     // Infinity

Присвоєння остачі

Оператор присвоєння остачі ділить змінну на значення правого операнду та присвоює остачу змінній. Дивіться {{jsxref("Operators/Arithmetic_Operators", "оператор остачі", "#Remainder", 1)}} для більш детального огляду.

Синтаксис

Оператор:  x %= y
Значення:  x  = x % y

Приклади

// Розглянемо такі змінні:
//  bar = 5

bar %= 2     // 1
bar %= 'foo' // NaN
bar %= 0     // NaN

Присвоєння з піднесенням до степеня

Оператор присвоєння з піднесенням до степеня обчислює результат піднесення першого операнду до показника степеня другого операнду. Дивіться {{jsxref("Operators/Arithmetic_Operators", "оператор піднесення до степеня", "#Exponentiation", 1)}} для більш детального огляду.

Синтаксис

Оператор:  x **= y
Значення:  x  = x ** y

Приклади

// Розглянемо такі змінні:
//  bar = 5

bar **= 2     // 25
bar **= 'foo' // NaN

Присвоєння з лівим зсувом

Оператор присвоєння з лівим зсувом виконує зсув першого операнду на вказану кількість бітів ліворуч та присвоює результат у змінну. Дивіться {{jsxref("Operators/Bitwise_Operators", "оператор лівого зсуву", "#Left_shift", 1)}} для більш детального огляду.

Синтаксис

Оператор:  x <<= y
Значення:  x   = x << y

Приклади

var bar = 5; //  (00000000000000000000000000000101)
bar <<= 2; // 20 (00000000000000000000000000010100)

Присвоєння з правим зсувом

Оператор присвоєння з правим зсувом виконує зсув першого операнду на вказану кількість бітів праворуч та присвоює результат у змінну. Дивіться {{jsxref("Operators/Bitwise_Operators", "оператор правого зсуву", "#Right_shift", 1)}} для більш детального огляду.

Синтаксис

Оператор:  x >>= y
Значення:  x   = x >> y

Приклади

var bar = 5; //   (00000000000000000000000000000101)
bar >>= 2;   // 1 (00000000000000000000000000000001)

var bar -5; //    (-00000000000000000000000000000101)
bar >>= 2;  // -2 (-00000000000000000000000000000010)

Присвоєння з беззнаковим правим зсувом

Оператор присвоєння з беззнаковим правим зсувом виконує зсув першого операнду на вказану кількість бітів праворуч та присвоює результат змінній. Дивіться {{jsxref("Operators/Bitwise_Operators", " оператор беззнакового правого зсуву", "#Unsigned_right_shift", 1)}} для більш детального огляду.

Синтаксис

Оператор:  x >>>= y
Значення:  x    = x >>> y

Приклади

var bar = 5; //   (00000000000000000000000000000101)
bar >>>= 2;  // 1 (00000000000000000000000000000001)

var bar = -5; // (-00000000000000000000000000000101)
bar >>>= 2; // 1073741822 (00111111111111111111111111111110)

Присвоєння з побітовим І

Оператор присвоєння з побітовим І використовує двійкове представлення обох операндів, виконує над ними операцію побітового І та присвоює результат змінній. Дивіться {{jsxref("Operators/Bitwise_Operators", "оператор побітового І", "#Bitwise_AND", 1)}} для більш детального огляду.

Синтаксис

Оператор:  x &= y
Значення:  x  = x & y

Приклади

var bar = 5;
// 5:     00000000000000000000000000000101
// 2:     00000000000000000000000000000010
bar &= 2; // 0

Присвоєння з виключним побітовим АБО

Оператор присвоєння з виключним побітовим АБО використовує двійкове представлення обох операндів, виконує над ними операцію виключного побітового АБО (XOR) та присвоює результат змінній. Дивіться {{jsxref("Operators/Bitwise_Operators", "оператор виключного побітового АБО", "#Bitwise_XOR", 1)}} для більш детального огляду.

Синтаксис

Оператор:  x ^= y
Значення:  x  = x ^ y

Приклади

var bar = 5;
bar ^= 2; // 7
// 5: 00000000000000000000000000000101
// 2: 00000000000000000000000000000010
// -----------------------------------
// 7: 00000000000000000000000000000111

Присвоєння з побітовим АБО

Оператор присвоєння з побітовим АБО використовує двійкове представлення обох операндів, виконує над ними операцію побітового АБО та присвоює результат змінній. Дивіться {{jsxref("Operators/Bitwise_Operators", "оператор побітового АБО", "#Bitwise_OR", 1)}} для більш детального огляду.

Синтаксис

Оператор:  x |= y
Значення:  x  = x | y

Приклади

var bar = 5;
bar |= 2; // 7
// 5: 00000000000000000000000000000101
// 2: 00000000000000000000000000000010
// -----------------------------------
// 7: 00000000000000000000000000000111

Приклади

Лівий операнд з іншим оператором присвоєння

У незвичних ситуаціях оператор присвоєння (наприклад,  x += y) не є ідентичним виразу, який він означає (в даному випадку x = x + y). Коли лівий операнд оператора присвоєння сам містить оператор присвоєння, лівий операнд обчислюється лише один раз. Наприклад:

a[i++] += 5         // i обчислюється лише один раз
a[i++] = a[i++] + 5 // i обчислюється двічі

Специфікації

Специфікація Статус Коментар
{{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}} {{Spec2('ESDraft')}}
{{SpecName('ES2015', '#sec-assignment-operators', 'Assignment operators')}} {{Spec2('ES2015')}}
{{SpecName('ES5.1', '#sec-11.13', 'Assignment operators')}} {{Spec2('ES5.1')}}
{{SpecName('ES1', '#sec-11.13', 'Assignment operators')}} {{Spec2('ES1')}} Початкове визначення.

Сумісність з веб-переглядачами

{{Compat("javascript.operators.assignment")}}

Див. також