isNaN(x)如果x是特殊的非數字值NaN(或能被轉換為這樣的值),傳回的值就是true。如果x是其他值,則回傳false。
i是index
如果第一次循環
a[i]是't'
b[a[i]]是b['t']訪問下標是't'的物件
b[a[i]] 不是數字的總是NaN
isNaN(b[a[i]] )是true因為b沒有下標是t的物件b現在是空的
! isNaN(b[a[i]] )是false
!isNaN(b[a[i]] )||(b[a[i]]=1);或運算子||一個為真就是真左邊表達式為false所以接著執行右邊的表達式可以看成條件語句的簡寫if(isNaN(b[a[i]] )){b[a[i]]=1}
(b[a [i]]=1);左邊的不成立就設定b的下標b['t']=1;
再循環如果遇到t就會成功執行t 如果沒有就繼續設定下標
這個例子沒有考慮空格,特殊字元等。