位置:首頁 > 軟件操作教程 > 編程開發(fā) > JavaScript > 問題詳情

JavaScript 賦值運算

提問人:劉團圓發(fā)布時間:2020-11-24

■知識點

賦值運算有以下兩種形式。

    簡單的賦值運算(=):把等號右側(cè)操作數(shù)的值,直接復(fù)制給左側(cè)的操作數(shù),因此左側(cè)操作數(shù)的值會發(fā)生變化。

    附加操作的賦值運算:賦值之前先對右側(cè)操作數(shù)執(zhí)行某種操作,然后把運算結(jié)果再復(fù)制給左側(cè)操作數(shù),具體說明如表所示。

賦值運算符

等效于

+=

加法運算或連接操作并賦值

a+=b

a = a + b

          -=

減法運算并賦值

a -=b

a = a - b

*=

乘法運算并賦值

a *=b

a = a *b

/=

除法運算并賦值

a/=b

a = a/b

%=

取模運算并賦值

a%=b

a = a%b

?=

左移位運算并賦值

a<<=b

a = a<<b

?=

右移位運算并賦值

a>>=b

a = a>>b

?>=

無符號右移位運算并賦值

a>>>= b

a = a>>>b

&=

位與運算并賦值

a&=b

a = a&b

丨=

位或運算并賦值

a |=b

a = a | b

^=

位異或運算并賦值

a^=b

a = a^b


■實例設(shè)計

使用賦值運算符設(shè)計復(fù)雜的連續(xù)賦值表達式。

var a = b = c = d = e = f = 100; //連續(xù)賦值

//在條件語句的小括號內(nèi)進行連續(xù)賦值

for(var a = b = 1; a < 5; a ++ ){ console.log(a + "" + b );  }

    賦值運算符的結(jié)合性是從右向左,所以最右側(cè)的賦值運算先執(zhí)行,然后再向左賦值,以此類推,所以連續(xù)賦值運算不會引發(fā)異常。

    在下面的表達式中,邏輯與左側(cè)的操作數(shù)是一個賦值表達式,右側(cè)的操作數(shù)也是一個賦值表達式,但是左側(cè)賦的值是一個簡單值,右側(cè)是把一個函數(shù)賦值給變量b。

    在邏輯與運算中,左側(cè)的賦值并沒有真正地復(fù)制給變量a,當(dāng)邏輯與運算執(zhí)行右側(cè)的表達式時,該表達式是把一個函數(shù)賦值給變量b,然后利用小括號運算符調(diào)用這個函數(shù),返回變量a的值,結(jié)果并沒 有返回變量a的值為6,而是undefined。

var a;                                      //定義變量a 

console.log(a = 6 && (b = function(){       //邏輯與運算表達式

        return a;                           //返回變量a的值

    })()

);                                          //結(jié)果返回undefined

    由于賦值運算作為表達式使用具有副作用,使用時要慎重,確保不會引發(fā)風(fēng)險。對于上面的表達式,更安全的寫法如下。

var a = 6;                //定義并初始化變量a

b = function 0 {               //定義函數(shù)對象b 

    return a;

}

console, log (a && b());       //邏輯與運算,根據(jù)a決定是否調(diào)用函數(shù)b


繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部