javascript で連結された省略形演算子を使用してスワップ関数を作成しているときに、私は非常に困惑するものに出くわしました。
このコードは、a と b の値を交換することになっています。
var a = 4532;
var b = 969;
a^=b^=a^=b;
しかし、そうではありません: b = 4532 ですが、a = 0 です。
このコードを 2 行に分割すると、意図したとおりに機能します。
var a = 4532;
var b = 969;
b^=a^=b;
a^=b;
技術的な説明は何ですか?
PS:誰かがすぐに自分で試してみたい場合は、jsfiddle のコードを次に示します。