JavaScript基本类型和引用类型
- 基本类型:基本类型在内存中占据固定大小的空间,因此保存在栈内存,即这种值完全保存在内存中的一个位置。
- 引用类型:保存在堆内存中的对象,意思是变量中保存的实际上只是一个指针,这个指针指向内存中的另一个位置。
如果赋给变量的是一个引用类型的值,则必须在堆内存中为这个值分配空间。由于这种值的大小不固定,因此不能把它们保存到栈内存中。但内存地址的大小是固定的,因此可以将内存地址保存在栈内存中。
![](http://images0.cnblogs.com/blog/309763/201302/25185241-ec057e8faad34995bb57a72997af8cab.jpg)
ECMAScript中所有函数的参数都是按值传递的。可以把ECMAScript函数的参数想象成局部变量。
检测类型:
基本数据类型使用typeof
引用类型使用instance of
没有块级作用域
![](http://images0.cnblogs.com/blog/309763/201302/25185259-83546652a0814331a755f15e44a260e3.jpg)
在使用for语句时候尤其要牢记这一点:
![](http://images0.cnblogs.com/blog/309763/201302/25185308-bfdc8b0081504a95a4f438f88f29af20.jpg)
如果变量在未经生命的情况下被初始化,那么该变量会被自动添加到全局变量
![](http://images0.cnblogs.com/blog/309763/201302/25185316-71b121ae3baa42378a16d82780f80031.png)