基本数据类型
console.log(typeof 123); // number
console.log(typeof 'hello'); // string
console.log(typeof true); // boolean
console.log(typeof undefined); // undefined
console.log(typeof null); // object
console.log(typeof Symbol()); // symbol ES6新增数据类型
引用数据类型
function add() { }
const arr = [];
const obj = {}
console.log(typeof add); // function
console.log(typeof arr); // object
console.log(typeof obj); // object
由此可得,能用typeof判断的,基本数据类型里除了null,引用数据类型只有function。
那么问题来了。
- 如何判断一个数据是null?
- 如何判断一个数据是Array?
- 如何判断一个数据是纯粹的对象?(不是null也不是数组) 下面我们一一解答。
1. 如何判断一个数据是null?
const a = undefined;
const b = null;
console.log(a == null); // true 因此 ==null 的有可能为undefined或null,不可行
console.log(b == null); // true
值得注意的是
console.log(null == undefined); // true
console.log(null === undefined); // false
console.log(a === null); // false
console.log(b === null); // true 因此要用 ===
结论:使用 ===
2. 如何判断一个数据是Array?
下面我们给出4种方法。
const arr = [];
console.log(Array.isArray(arr)); // true
console.log(arr instanceof Array); // true
console.log(arr.constructor === Array); // true
console.log(Object.prototype.toString.call(arr) === '[object Array]'); // true
3. 如何判断一个数据是纯粹的对象?(不是null也不是数组)
const obj = {};
console.log(Object.prototype.toString.call(obj) === '[object Object]'); // true
这里要注意的是 [object Object] 第一个头字母小写,第二个头字母大写