一个js交换变量的引发的问题引发的又一个问题

看了问题一个js交换变量的引发的问题之后, 于是就动手测试了一下, 发现a^=b^=a^=b在C中结果正确, 在JavaScript中就出错. JavaScript和C对表达式的计算方式为什么会不同?

#include <stdio.h>

int main(void) {
    int a=1, b=2;
    a^=b^=a^=b;
    printf("a, b: %d, %d \n", a, b);//a, b: 2, 1 
    return 0;
}

C运行结果

//JavaScript
var a=1,b=2;
a^=b^=a^=b;
console.log('a, b:', a, b);//a, b: 0 1
阅读 1.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题