JavaScript 賦值運算符


賦值運算符(assignment operator)是將右邊操作數(right operator)的值賦值給左邊的操作數(left operator)

如果在等號( = )前面再添加乘性操作符、加性操作符或位操作符,就可以完成復合賦值操作。這種復合賦值操作相當於是對常規表達式的簡寫。

var num = 10;
num = num +10//等價於
var num = 10;
num += 10;

每個主要算數運算符(以及個別的其他操作符)都有對應的符合賦值操作符,這些操作符如下:

名稱 簡寫 含義
賦值(Assignment) a = b a = b
加賦值(Addition assignment) a += b a = a + b
減賦值(Subtraction assignment) a -= b a = a - b
乘賦值(Multiplication assignment) a *= b a = a * b
除賦值(Division assigment) a  /= b a = a / b
模賦值(Remainder assignment) a %= b a = a % b
指數賦值(Exponentiation assignment) a **= b
a = a ** b
左移賦值(Left shift assignment) a <<= b a = a << b
右移賦值(Right shift assignment) a >>= b
a = a >> b
無符號右移賦值(Unsigned right shift assignment) a >>>= b
a = a >>> b
按位與賦值(Bitwise AND assignment) a &= b a = a & b
按位異或賦值(Bitwise XOR assignment) a ^= b a = a ^ b
按位或賦值(Bitwise OR assignment) a |= b a = a | b

 

一、賦值

簡單的賦值運算,就是將一個值賦給一個變量。

如果想把一個值賦給多個變量,可以采用鏈式使用賦值運算符。

語法:

a = b

實例:

// 假設有以下變量
a = 2; b = 9; c = 7; a = b; //將 b的值賦給 a,所以a 的值為 9
a = b = c //將 c 的值賦給 b,b的值是 7,再將 b的值賦給 a,所以 a、b、c的值都是 7

 

二、加賦值

加賦值運算符把一個右值和一個變量相加,然后把相加的變量賦值給該變量。

兩個操作符的類型決定加賦值運算符的行為。算數相加或是字符串連接都有可能。

語法

a += b
//等價於
a = a + b

實例:

//定義下列變量
aa = 'aa';
bb = 8;
cc = true

//加賦值運算遵循着算數加運算符的規則
bb += 1 
// 數字相加  9;實例:
                        
cc += 8
//布爾值與數字相加  9

aa += false
// 布爾值與字符串相加 'aafalse'

aa += bb
// 布爾值與數字相加拼串 'aa8'

 

三、減賦值

減賦值運算符使一個變量減去右值,然后把結果賦給變量。

語法:

a -= b
//等價於
a = a - b

實例:

// 定義下面的變量
// aa = 2

aa -= 3   
//aa的值為 -1
aa -= 'wo'
//返回值為 NaN

 

四、除賦值

除賦值運算符使一個變量除以右面的值,並且將結果賦值給該變量。

語法:

a /= b
//等價於
a = a / b

實例:

// 假定已定義了下面的變量
//  aa= 5

aa /= 2     // 2.5
aa /= "foo" // NaN
aa /= 0     // Infinity

 

五、模賦值

模賦值運算使一個變量除以右值,然后把余數賦值給該變量。

語法:

a %= b
//等價於
a = a % b

實例:

//假設一個變量
a = 5

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

 

六、左移賦值

左移賦值運算符使變量向左移動指定位數的比特位,然后將結果賦給該變量。

語法:

a <<= b
//等價於
a = a << b

實例:

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

 

七、右移賦值

右移賦值運算符使變量向右移動指定位數的比特位,然后將結果賦值給變量

語法:

a >>>= b
//等價於
a = a >>> b

實例:

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

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

 

八、無符號右移賦值

無符號右移賦值運算符向右移動指定數量的比特位,然后把結果賦給變量

語法:

a >>>= b
//等價於
a = a >>> b

實例:

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

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

 

九、按位與賦值

按位與賦值使用兩個操作值的二進制進行表示,執行二進制異或運算,並且把結果賦值給變量。

 語法:

a ^= b
//等價於
a = a ^ b

實例:

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

 

十、按位或賦值

按位或運算符使用兩個操作值的二進制進行表示,執行按位或運算,並且把結果賦給變量。

語法:

a |= b //等價於
a = a | b

實例:

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

 

 

參考資料:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Assignment_Operators


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM