JavaScript の型変換において、ちょっと面白いと思うことがあったので記事に残す。 問題 JavaScript (ECMAScript) で、以下を評価する。 const a = 1 + '1'; const b = 1 - '1'; すると、a には string 型の '11' が、b には number 型の 0 が、それぞれ入る(Safari の開発者ツールと Node.js で試したが、結果は同じ)。 a // '11' b // 0 直感的に、(a, b) は (2, 0) か ('11', '') になるだろうと思っていたので、ちょっと意外な結果となった。 調査 このように…