JavaScript typeof 運算子
在JavaScript中,如果要判斷資料型別,估計第一個想到的就是typeof運算子。
因為它不僅從長相看具有做此事的能力,也確實有一定的執行力。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼console.log(typeof 5);
程式碼執行效果截圖如下:
非常的完美,可以準確的列印出數字5的資料型別。
再來看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let arr=[]; console.log(typeof arr);
程式碼執行效果截圖如下:
陣列確實也是object型別,但是我們更希望它能夠更為精確的列印出資料型別。
所以typeof運算子雖然能夠實現基本的判斷功能,但是有時候並不夠精準。
再來看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼console.log(typeof 5); console.log(typeof "螞蟻部落"); console.log(typeof []); console.log(typeof null); console.log(typeof undefined); console.log(typeof {})
程式碼執行效果截圖如下:
上面程式碼的列印結果有的屬於預期,有的則出乎意料,下面做一下分析:
(1).前兩個列印結果符合預期。
(2).第三個列印不夠精準。
(3).null屬於是null型別資料,列印結果卻是object,這可以認為是ES設計時的一個小失誤。
(4).後兩個列印結果符合預期。
總結:typeof運算子對於值型別資料(除去null)是準確的,無法準確判斷陣列。
關於值型別可以參閱JavaScript值型別和引用型別一章節。
想要準確判斷資料型別,可以參閱JavaScript獲取物件資料型別一章節。
相關文章
- JS-7 typeof 運算子JS
- JavaScript in 運算子JavaScript
- JavaScript運算子JavaScript
- JavaScript -= 運算子JavaScript
- JavaScript += 運算子JavaScript
- JavaScript *= 運算子JavaScript
- JavaScript %= 運算子JavaScript
- JavaScript |= 運算子JavaScript
- JavaScript <<= 運算子JavaScript
- JavaScript >>>= 運算子JavaScript
- JavaScript >>= 運算子JavaScript
- JavaScript &= 運算子JavaScript
- JavaScript ^= 運算子JavaScript
- JavaScript /= 運算子JavaScript
- javascript中&&運算子和||運算子的使用JavaScript
- JavaScript * 乘法運算子JavaScript
- JavaScript / 除法運算子JavaScript
- JavaScript void 運算子JavaScript
- JavaScript + 加法運算子JavaScript
- JavaScript new 運算子JavaScript
- JavaScript (+) 加法運算子JavaScript
- JavaScript << 左移運算子JavaScript
- JavaScript - 減法運算子JavaScript
- JavaScript (<) 小於運算子JavaScript
- JavaScript == 等號運算子JavaScript
- JavaScript - 負號運算子JavaScript
- JavaScript !== 不全等運算子JavaScript
- JavaScript 兩個++ 運算子JavaScript
- JavaScript % 求餘運算子JavaScript
- JavaScript (>) 大於運算子JavaScript
- JavaScript 展開運算子JavaScript
- JavaScript + 正號運算子JavaScript
- JavaScript (+) 正號運算子JavaScript
- JavaScript (--) 遞減運算子JavaScript
- JavaScript 剩餘運算子JavaScript
- JavaScript 條件運算子JavaScript
- 訊飛:JavaScript 運算子JavaScript
- JavaScript || 邏輯或運算子JavaScript