1. 程式人生 > 其它 >JavaScript – 資料型別

JavaScript – 資料型別

前言

寫著 TypeScript 學習筆記, 順便也寫點 JS 的唄.

 

參考

JS資料型別分類和判斷

阮一峰 – 資料型別

 

JS 資料型別

string

number

boolan

undefined

null

object

symbol

bigint

其中 symbol 和 bigint 是後來加進去的

另外還有一些很常見但其它它們不能說是型別. array, function, class, arrow function, NaN, Regex, Date

 

typeof

typeof 是用來判斷型別的.

console.log('string', typeof 'string');
console.log(
'number', typeof 1); console.log('boolean', typeof true); console.log('undefined', typeof undefined); console.log('null', typeof null); console.log('object', typeof {}); console.log('symbol', typeof Symbol('v')); console.log('bigint', typeof (100n));

結果

只有一個奇葩, null = object. 這個是歷史原因.

另一組

console.log('array', typeof
[]); console.log('function', typeof function() {}); console.log('arrow function', typeof (() => {})); console.log('date', typeof new Date()); console.log('reg', typeof /\d/gi); console.log('NaN', typeof NaN); console.log('class', typeof class{});

結果

 

我們先講好理解的, function, arraw function 都是 function, JS 的 class 其實也是 function, 所有它們三都是 function, 沒問題.

reg, date 都是 new 出來的物件, 沒問題

最後只剩下 array = object, NaN (not a number) = number 比較亂水了. (背起來唄)

 

型別判斷方式

除了用 typeof 還有一些常用的技巧

判斷 null 

null === null

判斷 NaN

isNaN(NaN)

判斷 Array

Array.isArray([])

判斷 Date, Regex

(new Date()) instanceof Date

 黑魔法 typeof

console.log('string', Object.prototype.toString.call('string').slice(8, -1).toLowerCase());

效果