▼兩者屬於number型態

console.log(typeof NaN); // number
console.log(typeof Infinity); // number

▼兩者屬於number型態

console.log(5/"hi"); // Nan
console.log(5/0); // Infinity 會不斷找符合的數字,最後越找越大
console.log(Infinity * 5); // Infinity
console.log(Infinity / Infinity); // NaN 微積分不定型概念
console.log(0/0); // Nan 微積分不定型概念
console.log(0 * Infinity); // Nan 微積分不定型概念

※注: 不定型的概念為-結果可能是任意數

▼NaN之間的Value也不相等,因此若配合這種狀況來使用條件判斷就可能會有預期外的Bug產生

console.log(NaN == NaN); // false 
console.log(NaN === NaN); // false

▼為了避免上述可能發生的錯誤,如果要用NaN來表達條件式,可以使用isNan()

let x = NaN;
console.log(isNaN(x)); // true