回答:
MDNに よると
Math.min
、数字のみを受け入れ、引数の1つが数字でない場合はを返しNaN
ます。
それはそれが言っていることではありません(大胆な強調鉱山):
少なくとも1つの引数を数値に変換できない場合、結果はになり
NaN
ます。
型変換:
Math.min
ToNumber
引数を変換するために使用します。ToNumber
sのToPrimitive
変換に使用しますObject
(Array
sはObject
sです)。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