JS赋值运算符
赋值运算符左侧的操作数必须是变量、对象属性或数组元素,也称为左值。例如,下面的写法是错误的,因为左侧的值是一个固定的值,不允许操作。
1 = 100; //返回错误
赋值运算有以下两种形式:
- 简单的赋值运算
=
:把等号右侧操作数的值直接复制给左侧的操作数,因此左侧操作数的值会发生变化。 - 附加操作的赋值运算:赋值之前先对右侧操作数执行某种操作,然后把运算结果复制给左侧操作数。具体说明如表所示。
赋值运算符 | 说明 | 示例 | 等效于 | |||
---|---|---|---|---|---|---|
= | 加法运算或连接操作并赋值 | 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((a = b = 1;a < 5;a ) {console.log(a "" b)};)
赋值运算的结合性是从右向左,最右侧的赋值运算先执行,然后再向左赋值,以此类推,所以连续赋值运算不会引发异常。
在下面表达式中,逻辑与左侧的操作数是一个赋值表达式,右侧的操作数也是一个赋值表达式。但是左侧赋的值是一个简单值,右侧是把一个函数赋值给变量b。
var a;
console.log(a = 6 && (b = function(){
return a;
})()
);
在逻辑与运算中,左侧的赋值并没有真正的复制给变量 a,当逻辑与运算执行右侧的表达式时,该表达式是把一个函数赋值给变量 b,然后利用小括号运算符调用这个函数,返回变量 a 的值,结果并没有返回变量 a 的值 6,而是 undefined。
由于赋值运算作为表达式使用具有副作用,使用时要慎重,确保不会引发风险。对上面的表达式更安全的写法如下:
var a = 6; //定义并初始化变量a
b = function () { //定义函数对象b
return a;
}
console.log(a && b()); //逻辑与运算,根据a决定是否调用函数b
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhghfkei
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13