在javascript中使用鏈式速記運算符編寫交換函數時,我偶然發現了讓我困惑的東西。這些鏈式速記操作符爲什麼不起作用?
此代碼應該交換a和b值。
var a = 4532;
var b = 969;
a^=b^=a^=b;
但事實並非如此:B = 4532,但= 0
如果我打破2行的代碼,它按預期工作。
var a = 4532;
var b = 969;
b^=a^=b;
a^=b;
什麼是技術解釋?
PS:這裏是the code on jsfiddle如果有人想快速嘗試自己。