数据类型
按照ESMAscript规范可以分为基本数据类型和引用数据类型
基本数据类型:String 、 Number(NaN)、boolean、null、undefined、Smybol、BigInt
引用数据类型:Object、Array,Function、RegExp
判断方法
typeof:常用来判断基本数据类型 除了 null ,null和引用数据类型除了function返回的是function,其他都是返回object
typeof 1 // "number"
typeof '1' //"string"
typeof true //"boolean"
typeof null //"object"
typeof undefined //"undefined"
typeof 1n //"bigint"
typeof Symbol('1') //"symbol"
typeof [] //"object"
typeof {} //"object"
typeof function(){} //"function"
typeof /^[\S+]$/ //"object"
instanceof :常用于判断引用数据类型,Array判断是Object时也为true,判断基本数据类型结果都为false,不能用来判断null和undefined
1 instanceof Number // false
'1' instanceof String //false
true instanceof Boolean //false
null instanceof Number //"object"
[] instanceof Array //true
({}) instanceof Object //true
[] instanceof Object//true
(function(){}) instanceof Function //true
/^[]$/ instanceof RegExp //true
constructor:常用于得到数据的构造函数,不能用来获取null和undefined
[].constructor // ƒ Array() { [native code] }
Object.prototype.toString.call():是js判断数据类型最完美的方法
Object.prototype.toString.call({}) // "[object Object]"
//从得到的字符串中拿到我们想要的解构
//方法1
Object.prototype.toString.call({}).replace(/\[object (\S+)\]/,"$1")//"Object"
//方法2
Object.prototype.toString.call({}).slice(8,-1) // "Object"
基本数据类型和引用数据类型的区别
基本数据类型存储的是原始值,存储在栈中,引用数据类型存储在堆中,对引用数据类型的引用其实就是复制引用数据类型在堆内存中开辟的内存地址
栈:大小固定,常用于存放基本数据类型和引用数据类型的内存地址
堆:大小不固定,存放着基本数据类型的实际值
本文详细介绍了JavaScript中的数据类型,包括基本数据类型和引用数据类型,并提供了利用typeof和instanceof进行数据类型判断的方法。同时,探讨了基本数据类型与引用数据类型的存储区别,如基本数据类型存储在栈中,而引用数据类型存储在堆中。此外,还提到了使用constructor获取数据构造函数以及Object.prototype.toString.call()方法来准确判断数据类型。
342

被折叠的 条评论
为什么被折叠?



