---
# System prepended metadata

title: 關於 NaN
tags: [Javascript, 六角筆記王]

---

###### tags: `Javascript` `六角筆記王`

# 關於 NaN 

* NaN 的型別是 number 
* NaN 的全名是 Not a Number（不是一個數字），非數字
> 你可以想成相乘運算基本上就是用在數字型別上的，所以當你使用 * 運算子時，他會將要運算的值都用 Number 轉成數字再做運算，而若轉換的結果有任何東西為非數字，就會出現 NaN，NaN 是數字型別，能夠與數字進行運算。
----引用前端助教 Jay
* NaN 不能運算
*  NaN 可能產生時機：
1. 將"字串"與數字相乘
```javascript=
let myName = "Tom";
let age = 20;
let total = myName * age; //字串與數字相乘
console.log(total); //NaN
```
2. 在 parseInt() 裡放不可能轉型的字串
```javascript=
//parseInt轉換成數字型別
let age2 = parseInt("hello"); //因為hello並非數字，所以使用parseInt轉換數字型別會出現NaN錯誤訊息。
console.log(age2); //NaN
console.log(typeof age2); //Number
```

* NaN 存在的目的在告訴你就算不能相乘也會回報你異常
* 如果今天想判斷值是不是 NaN ，可以使用 isNaN()