• JS赋值运算符详解


    赋值运算符左侧的操作数必须是变量、对象属性或数组元素,也称为左值。例如,下面的写法是错误的,因为左侧的值是一个固定的值,不允许操作。

    1. 1 = 100; //返回错误

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

    • 简单的赋值运算=:把等号右侧操作数的值直接复制给左侧的操作数,因此左侧操作数的值会发生变化。
    • 附加操作的赋值运算:赋值之前先对右侧操作数执行某种操作,然后把运算结果复制给左侧操作数。具体说明如表所示。
    赋值运算符说明示例等效于
    +=加法运算或连接操作并赋值a += ba = a + b
    -=减法运算并赋值a -= ba= a - b
    *=乘法运算并赋值a *= ba = a * b
    /=除法运算并赋值a /= ba = a / b
    %=取模运算并赋值a %= ba = a % b
    <<=左移位运算并赋值a <<= ba = a << b
    >>=右移位运算并赋值a >>= ba = a >> b
    >>>=无符号右移位运算并赋值位a >>>= ba = a >>> b
    &=位与运算并赋值a &= ba = a & b
    \=位或运算并赋值a \= ba = a \= b
    ^=位异或运算并赋值a ^= ba = a ^ b

    示例1

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

    1. var a = b = c = d = e = f = 100; //连续赋值
    2. //在条件语句的小括号内进行连续赋值
    3. for((a = b = 1;a < 5;a++) {console.log(a + "" + b)};)

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

    示例2

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

    1. var a;
    2. console.log(a = 6 && (b = function(){
    3. return a;
    4. })()
    5. );

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

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

    1. var a = 6; //定义并初始化变量a
    2. b = function () { //定义函数对象b
    3. return a;
    4. }
    5. console.log(a && b()); //逻辑与运算,根据a决定是否调用函数b
  • 相关阅读:
    Android学习笔记 38. 网络加载框架Retrofit
    Preview(2021-2022年度第三届全国大学生算法设计与编程挑战赛(夏季赛)——正式赛——E)
    java之mybatis语法
    【编译原理】编译器前端
    大学生影视主题网页制作 腾龙电影网页设计模板 学生静态网页作业成品 dreamweaver电影HTML网站制作
    创建一个electron桌面备忘录
    硬盘格式化怎么选?NTFS/FAT32/exFAT
    力扣(518.377)补7.31
    Git 小技巧:忽略某些文件的更改
    HTML5高级部分
  • 原文地址:https://blog.csdn.net/unbelievevc/article/details/127995534