js中的数据类型分为 基本数据类型和引用数据类型。
基本数据类型有:Number、String、Boolean、Null、Undefined、Symbol、BigInt
引用数据类型有:Object、Array、RegExp(正则)、function、new Date
数据类型判断方法:
1. typeof :只能判断基本数据类型;判断引用数据类型 都返回object。
typeof value 返回值是value的数据类型,但检测null时,返回的是object。
2.instanceof:只有知道数据类型才可以判断。
[] instanceof Array // true
{} instanceof Object // true
3.constructor:语法: 要判断数据类型的变量.constructor === Array
var arr = [0,2,5,9,7]
console.log(arr.constructor.name) // Array
console.log([].constructor === Object) //true
4. Object.prototype.toString.call() :原生js最全能的数据类型判断 "[object 数据类型]"
Object.prototype.toString.call(123); //[object Number]
Object.prototype.toString.call(“abc”); //[object String]
Object.prototype.toString.call(null); //[object Null]
基本数据类型与引用数据类型的区别:
基本数据类型是直接存储在栈内存中,引用数据类型,它的值是在堆内存中开辟了一块新的内存空间我们通过变量来复制一个引用数据类型的时候其实只是把这个开辟的内存空间的地址进行了一个赋值。
基本数据类型和引用数据类型在内存中的执行(图)