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

一个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
【热门文章】
【热门文章】