- 类型
1.原始(值)类型
- Undefined
- Null
- Boolean
- String
- Number
2.对象(引用)类型
- Object:var obj={};var arr=[]; var date=new Date();
屏幕快照 2016-08-10 下午10.14.14.png
3.原始类型和对象类型的区别
- 原始类型值存储在栈内存
- 栈内存存储的是对象类型的地址
- 对象类型值存储在堆内存
- 访问
- 复制
屏幕快照 2016-08-10 下午10.25.19.png
- 隐式的类型转换
屏幕快照 2016-08-10 下午10.03.47.png
- 显式的类型转换
屏幕快照 2016-08-10 下午10.05.40.png
- 类型识别
- typeof
- instanceof
- Object.prototype.toString.call
- constructor
说明:1.typeof是一个操作符而不是一个方法 typeof "a" ;typeof("a");
2.typeof可以识别标准类型(Null除外)
3.typeof不能识别具体的对象类型(Function除外)
4.instanceof能够判别内置对象类型,不能判别原始类型
5.instanceof能够判别自定义类型对象
6.Object.prototype.toString.call可以识别标准类型以及内置(build-in)对象类型
7.Object.prototype.toString.call 不能识别自定义类型
8.constructor可以判别标准类型(Undefined/Null除外)
9.constructor可以判别内置对象类型、自定义对象类型
![屏幕快照 2016-08-10 下午11.20.26.png](http://upload-images.jianshu.io/upload_images/2536398-fef0558f851ae087.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
屏幕快照 2016-08-10 下午11.20.26.png
屏幕快照 2016-08-10 下午11.25.22.png
屏幕快照 2016-08-10 下午11.13.37.png