回答:
MDNに よると
Math.min、数字のみを受け入れ、引数の1つが数字でない場合はを返しNaNます。
それはそれが言っていることではありません(大胆な強調鉱山):
少なくとも1つの引数を数値に変換できない場合、結果はになり
NaNます。
型変換:
Math.minToNumber引数を変換するために使用します。ToNumbersのToPrimitive変換に使用しますObject(ArraysはObjectsです)。ToPrimitive 使用する toString[5].toString()である'5'に返されるた、ToPrimitiveそれが返す、ToNumberそれを解析している、5に戻りMath.minそうではないので、それは、有効な引数であるため、NaN。[1, 2].toString()、OTOHは'1, 2'、に返されますToPrimitive。これは、に返されます。有効な数値表現ではないためToNumber、に解析されNaNます。ToNumber次に通過NaNしMath.min、次に返される、NaN(MDNはそれを述べたように)(これはスペック状態)又は「引数の1つを数値に変換することができない」ので、「任意の値がNaNである場合、結果はNaNです。」。Number([1,2]);NaNのが、結果Number([1])結果1