JavaScriptを作成するとき、私は常に2つの整数を足し合わせると別の整数になることを当然のことと思っていました。または、2つの文字列を一緒に追加すると、連結が発生します。しかし、私は、インスタンスを使用して操作を実行する前に、言語が舞台裏でインスタンスのタイプをどのように決定するのかを考えるようになりました。
var one = 1;
var two = 2;
var fourStr = 'four';
var floaty = 1.5;
//this results in an integer
var three = one + two; //3
//but this results in a string
var result = fourStr + one; //'four1'
//and this results in a float
var floatenized = one + floaty; //2.5
ランタイムはインスタンスタイプを決定し、ある種の内部タイプの優先順位などを参照するだけですか?異なるタイプのインスタンスが組み合わされたときに、ランタイムによってこれらの操作がどのように実行されるかを正確に説明できる人はいますか?