位置:首页 > 软件操作教程 > 编程开发 > JavaScript > 问题详情

JavaScript 赋值运算

提问人:刘团圆发布时间:2020-11-24

■知识点

赋值运算有以下两种形式。

    简单的赋值运算(=):把等号右侧操作数的值,直接复制给左侧的操作数,因此左侧操作数的值会发生变化。

    附加操作的赋值运算:赋值之前先对右侧操作数执行某种操作,然后把运算结果再复制给左侧操作数,具体说明如表所示。

赋值运算符

等效于

+=

加法运算或连接操作并赋值

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


■实例设计

使用赋值运算符设计复杂的连续赋值表达式。

var a = b = c = d = e = f = 100; //连续赋值

//在条件语句的小括号内进行连续赋值

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

    赋值运算符的结合性是从右向左,所以最右侧的赋值运算先执行,然后再向左赋值,以此类推,所以连续赋值运算不会引发异常。

    在下面的表达式中,逻辑与左侧的操作数是一个赋值表达式,右侧的操作数也是一个赋值表达式,但是左侧赋的值是一个简单值,右侧是把一个函数赋值给变量b。

    在逻辑与运算中,左侧的赋值并没有真正地复制给变量a,当逻辑与运算执行右侧的表达式时,该表达式是把一个函数赋值给变量b,然后利用小括号运算符调用这个函数,返回变量a的值,结果并没 有返回变量a的值为6,而是undefined。

var a;                                      //定义变量a 

console.log(a = 6 && (b = function(){       //逻辑与运算表达式

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

    })()

);                                          //结果返回undefined

    由于赋值运算作为表达式使用具有副作用,使用时要慎重,确保不会引发风险。对于上面的表达式,更安全的写法如下。

var a = 6;                //定义并初始化变量a

b = function 0 {               //定义函数对象b 

    return a;

}

console, log (a && b());       //逻辑与运算,根据a决定是否调用函数b


继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部