Answers:
根据MDN
Math.min,它仅接受数字,并且如果参数之一不是数字,则将返回NaN。
那不是它所说的(我的粗体强调):
如果至少一个参数不能转换为数字,则结果为
NaN。
类型转换:
Math.min用于ToNumber转换其参数。ToNumber用于ToPrimitive转换Objects(和Arrays为Objects)。ToPrimitive 用途 toString[5].toString()is '5',它被返回到ToPrimitive,然后将其返回到,然后将ToNumber其解析为,5然后返回给Math.min,因为它不是有效参数,因此它是有效参数NaN。[1, 2].toString(),OTOH,是'1, 2',将返回ToPrimitive,将其返回到,然后将ToNumber其解析为NaN,因为它不是有效的数字表示形式。ToNumber然后传递NaN到Math.min,然后返回NaN,因为(如MDN所言)“其参数之一不能转换为数字”或(如规范所言)“如果值为NaN,则结果为NaN”。Number([1,2]);结果为NaN,但Number([1])结果1