在编写 JavaScript 时,我总是理所当然地认为将两个整数相加会产生另一个整数。或者将两个字符串加在一起会导致串联。但我开始思考,在使用这些实例执行操作之前,语言如何在幕后确定实例的类型?
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
运行时是否只是确定实例类型,然后引用某种内部类型优先级或其他什么?当不同类型的实例组合在一起时,谁能准确解释运行时如何执行这些操作?