1.先说一下数据类型都有哪些?
分为基本数据类型和引用数据类型
①基本数据类型包括: Number、String、Boolean、Undefined、Null、Symbol 和 BigInt
②引用数据类型包括:Object。包含Object、Array、 function、Date、RegExp。
2.怎么去判断它是引用数据类型还是基本数据类型呢?
一共有下面这几种方法:
typeof、instanceof、constructor、Object.prototype.toString.call()、jquery.type()
①typeOf:
简单而言呢,typeOf检测基本数据类型 对于基本数据类型的判断是没有问题的,但是如果遇到引用数据类型(Array)是不起作用的
②instanceOf:
instanceof检测的是原型 不考虑 null 和 undefined(这两个比较特殊)以对象字面量创建的基本数据类型
③constructor:
constructor似乎完全可以应对基本数据类型和引用数据类型 但如果声明了一个构造函数,并且把他的原型指向了 Array 的原型,这种情况下,constructor 也显得力不从心。检测undfinded和null无效
④Object.prototype.toString.call():
简单来说是一种完美的解决方案
3.那么基本数据类型和引用数据类型怎么区分 有什么区别呢?
基本数据类型和引用数据类型主要存在栈和堆存贮的区别
基本数据类型存储在栈中 ,在栈中大小固定 主要存储的是string、boolean等基本数据类型 ,所以存在栈中
而引用数据类型存储在堆中,在堆中大小不固定,主要存储object、array以及null等,所以存在堆中
4.如何在内存中执行的代码?
引用数据类型: