私が理解するように導かれた限り、x++
本質的にはより簡潔な言い方x = x + 1
です。これまでのところ、とても明確です。フロントエンドのJavascriptで、時々見たことがあります— jsPerf++x
テストから、これが特定のバージョンのIEでパフォーマンス上のわずかな利点を持っていることを(1つのGoogleが効果的にどのように)見つけられなくなったことを覚えているようです。それで行きます。++
しかし、私は最近、実行順序(JSコード)の奇妙な癖について話す何かに遭遇しました:
var x = 1;
console.log(x++); // 1 (?!)
console.log(x); // 2
…一方
var x = 1;
console.log(++x); // 2 (what I would've expected)
console.log(x); // 2
私はこれに頭を悩ませることができません。操作と割り当てが括弧内にある場合、変更されていない変数をどのように返すことができますか?したがって、console.log
実行されて返されることは言うまでもなく、呼び出される前にすべての権限を実行する必要がありますか?