一、数据类型
1、基本类型:string,number,boolean,null,undefined,symbol,bigint
2、引用类型:object,function,array;object还可分为Function,Array, RegExp(regular expression), Date, Math
区别:基本类型存在栈内存中,大小相对固定;引用类型存在堆内存中,如果多个变量保存了同一堆内存地址,会产生 ‘值共享‘ 的现象。
易错题 : 关于引用类型数据作为参数传递给函数(值传递)
let a = {
age: 20,
name: 'a'
};
function changeValue(o){
o.age++
o = {
age:25,
name: 'o'
}
return o
}
let b = changeValue(a)
console.log(a.age)
console.log(b.age)
二、数据类型检测方法
1、typeof
优点:简单,能检测大部分基本类型。可用于手写拷贝函数中
缺点:检测null 和 array类型是会返回 ‘object’
2、instanceOf
用于检测引用类型。
原理:判断构造函数的原型对象是否在对象原型链上
3、object.prototype.toString.call
优点:能准确判断各种数据类型