一、javaScript数据类型分为原始数据类型和引用数据类型
- 原始数据类型(只能读属性 不能操作属性),分为五种:Undefined、Null、Boolean、Number 和 String.
typeOf检测基本数据类型,null是Null类型,属于基本类型,typeof null 返回的是字符串’object’,比较特殊。 - 引用类型:对于引用类型的值,我们可以为其添加属性和方法,也可以改变和删除其属性和方法。比如:Object 、Array 、Function 、Data等。
instanceof检测引用数据类型,instanceof可以在继承关系中用来判断一个实例是否属于它的父类型。
**
用法:1、基本用法
**
function Animal() {}
var a = new Animal();
console.log(a instanceof Animal); // true
2、原型继承用法
function Animal() {}
var a = new Animal();
function Cat() {}
var c1 = new Cat();
Cat.prototype = a;
var c2 = new Cat();
console.log(c1 instanceof Cat); // false
console.log(c2 instanceof Cat); // true
console.log(c1 instanceof Animal); // false
console.log(c2 instanceof Animal); // true
二、基本数据类型和引用数据类型的区别
1.存储位置
基本变量类型:
在方法中定义的非全局基本数据类型变量的具体内容是存储在栈中的
引用变量类型:
只要是引用数据类型变量,其具体内容都是存放在堆中的,而栈中存放的 是其具体内容所在内存的地址
2.传递方式
基本变量类型:
在方法中定义的非全局基本数据类型变量,调用方法时作为参数是按数值传递的。
引用变量类型:
引用数据类型变量,调用方法时作为参数是按引用传递的。