一、js基本数据类型
JavaScript的数据类型分为两种:原始类型(即基本数据类型)和对象类型(即引用数据类型)。
JavaScript有八种内置类型
空值(null)
未定义(undefined)
布尔值(boolean)
数字(number)
字符串(string)
对象 (object)
符号(symbol, ES6中新增)
大整数(BigInt, ES2020 引入)
1.1引用类型和基本数据类型的区别
如:
let a=1,b=1,c={},d={}
a==b // true 基本类型
c==d // false 引用类型
二、typeof原理
不同的对象在底层都表示为二进制,在Javascript中二进制前(低)三位存储其类型信息
typeof null // 'object'
typeof undefined; // "undefined"
typeof false; // "boolean"
typeof 1; // "number"
typeof '1'; // "string"
typeof {}; // "object"
typeof []; // "object"
typeof new Date(); // "object"
typeof Symbol(); // "Symbol"
typeof 123n // 'bigint'
三、利用Object.prototype.toString
四、instanceof
instanceof原理:检测 constructor.prototype是否存在于参数 object的 原型链上。
instanceof可以用来判断对象是否是某个类的实例
var arr = [1, 2, 3];
var date = new Date();
var fn= function () {
alert(123);
};
console.log(arr instanceof Array);
console.log(date instanceof Date);
console.log(fn instanceof Function);
console.log(Function instanceof Object)
console.log(Object instanceof Function)