Day7:如何檢查型別

前面提到「變數本身沒有型別問題,變數帶的值才有型別資訊」,所以要判斷型別,當然是去檢查變數所帶的值。

我們可以這樣來判斷變數的型別:

  • typeof 資料
  • typeof(資料)
typeof '洪七公';  //'string'
typeof 7749;     //'number'
typeof NaN;      //'number'
typeof true      //'boolean'
typeof {};      //'object'
typeof [];      //'object'
typeof null;      //'object'

用typeof檢查資料型別,回傳的都是字串,如果是為宣告的變數則回傳’undefined’。

如何判斷型別是否為NaN?

比較特別的是:

typeof NaN;      //'number'

假設楊康這個小屁孩在應該填寫數字的表單裡面打了一堆亂碼,回傳給JavaScript判斷,parseInt()之後會給我們NaN的結果,此時就不能使用(typeof(xx) ! == number)來判斷,因為遇到 typeof NaN的回傳值會是’number’。

※ parseInt()可以用來將資料轉為整數,由字串最左邊開始轉換,一值轉換到字串結束或遇到非數字字元為止。

這時要使用 isNaN() 來判斷傳回的資料是否為’NaN’,如果不是,傳回的是false,才進行後面的計算。

如何判斷型別是否為陣列?

因為使用typeof去檢查陣列,得到的結果會是 ‘object’,所以該如何正確地判斷某個變數為陣列,而非物件?

這時要使用 isArray() 這個方法。

array.isArray([]);   //true
array.isArray(['東邪','西毒','北丐','南帝','中神通']);   //true

array.isArray({});   //false

Day7:如何檢查型別
https://popeye-ux.github.io/2021/09/07/21-day7-typeCheck/
作者
POPEYE
發布於
2021年9月7日
許可協議