一个没有得到重视的知识点, 数据类型
每种语言都有自己的数据类型,下面以javascript为例
类型的分类
js的数据类型可以分为 两大类:
1,值类型 (String,Number,undefined,Boolean,null)
2,引入类型(Object,Function,Array)
个人理解也可以把值类型和引入类型分为简单类型和复杂类型
两个类型的区别
比较通俗的理解就是:
1,引用类型都有自己的原型,可以自己扩展属性,但是值类型不行
2,所有的引用类型的__proto__指向 他构造函数的prototype
3,值类型用typeof来检测数据类型,引用类型用instanceof检测
比如:
有时候我们会很奇怪,为什么b声明的是数组类型的用typeof检测的时候怎么变成object了呢?
其实我们会发现只要是引用类型(复杂类型)用typeof检测出来的都是object
下面我们说说instanceof
1,用于判断一个引用类型是否属于某构造函数;(A instanceof B 检测构造函数B的原型是否有出现在对象A的原型链上。)
2,还可以在继承关系中用来判断一个实例是否属于它的父类型。
因为所有的引用类型的__proto__指向 他构造函数的prototype 所以可以用i