## js变量类型:
1. 基本类型——保存在栈内存中:按值访问
2. 引用类型(object)——对象保存在堆内存中,栈内存中只保存对象的指针:按引用访问
![](https://box.kancloud.cn/6ba3fb61bb34135b1dcaf58775288741_596x298.png)
3.函数的参数都是按值传递,也就是函数所有参数都是局部变量
4.检测变量基本类型
`typeof box`
5.判断是不是某个 引用类型 Array,Object
`box instanceof Array`
6.执行环境
所有变量和函数都是window下的属性和方法
也即是每个变量和函数的外面都有一个变量对象
~~~
function box(){
//var color='blue' 去掉var 就是全局变量
color='red'
}
~~~
7.函数嵌套时,只有这个函数才能访问里面的函数
8.js没有块级作用域
~~~
if(true){
var box='red';
}
alert(box);
~~~
9.变量是从最里层往外搜索的
~~~
var box='red';
function ddd(){
var box ='blue';
alert(box);
}
~~~