isNaN(x) x が特殊な非数値 NaN (またはそのような値に変換できる場合)値)、戻り値は true です。 x がその他の値の場合は、false を返します。
i がインデックス
最初のループ
a[i] が 't' の場合
b[a[i]] が b['t'] で、アクセス添字が 't' の場合数値ではないオブジェクト
b[a[i]] は常に NaN です
isNaN(b[a[i]] ) は、 b には添字がなく、t を持つオブジェクト b は空であるため、 true
! isNaN(b[a[i]] ) は false
!isNaN(b[a[i]] )||(b[a[i]]=1); どちらかが true の場合左の式は false なので、右の式を実行することは、条件文 if(isNaN(b[a[i]] )){b[a[i]] の省略形とみなすことができます。 ]=1}
(b[a [i]]=1); 左が true でない場合は、b の添字を設定します b['t']=1 を再度ループし、t が見つかった場合、t は正常に実行されます。そうでない場合は、添え字
の設定を続けます。この例では、スペースや特殊文字などは考慮されていません。