一、数据类型
    1、基本类型:string,number,boolean,null,undefined,symbol,bigint
    2、引用类型:object,function,array;object还可分为Function,Array, RegExp(regular expression), Date, Math
    区别:基本类型存在栈内存中,大小相对固定;引用类型存在堆内存中,如果多个变量保存了同一堆内存地址,会产生 ‘值共享‘ 的现象。
    易错题 : 关于引用类型数据作为参数传递给函数(值传递

    1. let a = {
    2. age: 20,
    3. name: 'a'
    4. };
    5. function changeValue(o){
    6. o.age++
    7. o = {
    8. age:25,
    9. name: 'o'
    10. }
    11. return o
    12. }
    13. let b = changeValue(a)
    14. console.log(a.age)
    15. console.log(b.age)

    二、数据类型检测方法
    1、typeof
    优点:简单,能检测大部分基本类型。可用于手写拷贝函数中
    缺点:检测null 和 array类型是会返回 ‘object’
    2、instanceOf
    用于检测引用类型。
    原理:判断构造函数的原型对象是否在对象原型链上
    3、object.prototype.toString.call
    优点:能准确判断各种数据类型