Переклад не закінчено. Будь ласка, допоможіть перекласти цю статтю з англійської.

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

Огляд

Базовим оператором присвоєння є оператор =, він записує значення правого операнда у лівий операнд. Таким чином 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
Присвоєння з побітовим AND x &= y x = x & y
Присвоєння з побітовим XOR x ^= y x = x ^ y
Присвоєння з побітовим OR x |= y x = x | y

Присвоєння

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

Синтаксис

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

Приклади

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

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

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

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

Синтаксис

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

Приклади

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

// Кожен із наведених прикладів розглядається, як окремий. 
//   Тобто не враховуючи результати попередніх

// Number + Number -> додавання
bar += 2 // 7

// Boolean + Number -> додавання
baz += 1 // 2

// Boolean + Boolean -> додавання
baz += false // 1

// Number + String -> конкатенація
bar += 'foo' // "5foo"

// String + Boolean -> конкатенація
foo += false // "foofalse"

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

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

Оператор присвоєння з відніманням віднімає значення правого операнду від змінної (лівого перанду) та записує у неї отриманий результат. Дивіться оператор віднімання для більш детального огляду.

Синтаксис

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

Приклади

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

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

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

Оператор присвоєння з множенням помножує змінну (лівий операнд) на значення правого операнду та записує у неї отриманий результат. Дивіться оператор множення для більш детального огляду.

Синтаксис

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

Приклади

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

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

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

Оператор присвоєння з діленням ділить змінну (лівий операнд) на значення правого операнду та записує у неї отриманий результат. Дивіться оператор ділення для більш детального огляду.

Синтаксис

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

Приклади

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

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

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

Оператор присвоєння остачі розраховує остачу від ділення змінної (лівого операнду) на значення правого операнду та записує у неї отриманий результат. Дивіться опертор остачі для більш детального огляду.

Синтаксис

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

Приклади

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

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

Exponentiation assignment

This is an experimental technology, part of the ECMAScript 2016 (ES7) proposal.
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future version of browsers as the spec changes.

The exponentiation assignment operator evaluates to the result of raising first operand to the power second operand. Дивіться exponentiation operator для більш детального огляду.

Синтаксис

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

Приклади

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

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

Left shift assignment

The left shift assignment operator moves the specified amount of bits to the left and assigns the result to the variable. Дивіться left shift operator для більш детального огляду.

Синтаксис

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

Приклади

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

Right shift assignment

The right shift assignment operator moves the specified amount of bits to the right and assigns the result to the variable. Дивіться right shift operator для більш детального огляду.

Синтаксис

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

Приклади

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

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

Unsigned right shift assignment

The unsigned right shift assignment operator moves the specified amount of bits to the right and assigns the result to the variable. Дивіться unsigned right shift operator для більш детального огляду.

Синтаксис

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

Приклади

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

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

Bitwise AND assignment

The bitwise AND assignment operator uses the binary representation of both operands, does a bitwise AND operation on them and assigns the result to the variable. Дивіться bitwise AND operator для більш детального огляду.

Синтаксис

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

Приклади

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

Bitwise XOR assignment

The bitwise XOR assignment operator uses the binary representation of both operands, does a bitwise XOR operation on them and assigns the result to the variable. Дивіться bitwise XOR operator для більш детального огляду.

Синтаксис

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

Приклади

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

Bitwise OR assignment

The bitwise OR assignment operator uses the binary representation of both operands, does a bitwise OR operation on them and assigns the result to the variable. Дивіться bitwise OR operator для більш детального огляду.

Синтаксис

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

Приклади

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

Приклади

Left operand with another assignment operator

In unusual situations, the assignment operator (e.g. x += y) is not identical to the meaning expression (here x = x + y). When the left operand of an assignment operator itself contains an assignment operator, the left operand is evaluated only once. For example:

a[i++] += 5         // i is evaluated only once
a[i++] = a[i++] + 5 // i is evaluated twice

Specifications

Specification Status Comment
ECMAScript Latest Draft (ECMA-262)
The definition of 'Assignment operators' in that specification.
Draft  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Assignment operators' in that specification.
Standard  
ECMAScript 5.1 (ECMA-262)
The definition of 'Assignment operators' in that specification.
Standard  
ECMAScript 1st Edition (ECMA-262)
The definition of 'Assignment operators' in that specification.
Standard Initial definition.

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

See also

Мітки документа й учасники

Зробили внесок у цю сторінку: Onimi, trofima
Востаннє оновлена: Onimi,