变量对于学习js,学习编程语言的同学在熟悉不过了,在这里就不在阐述官方的定义了,网上太多了,今天我们就从生活中来理解他 
1.什么是变量? 
比如: 
一个水杯里面装了水,这个水杯就是变量; 
一瓶啤酒,这个啤酒瓶就是变量; 
变量就是一个载体,一个媒介 
2.定义变量 
var a=12;//typeof a=Numer 
var a=‘aaa' //typeof a =string 
由此可见 变量的类型取决于给他付了什么值 
例如,一个杯子,装了水就是水杯,装了酒就是酒杯,装了醋就是醋瓶 
3.变量类型 
变量类型分为:基本类型和引用类型 
基本类型分为:Number(数字类型),String(字符串类型),Boolean(布尔类型),Undefined(未定义),Null 
引用类型:大多数是Obiect(对象) 
基本类型值是保存在栈内存中的简单的数据,他在内存中占一个位置; 
引用类型值是保存在堆内存中的对象,在栈内存中存放的是地址,这个地址指向堆内存中的对象
1.局部变量 
<scripttype="text/javascript">
functionaaa()
{
vara=10;
}
functionbbb()
{
alert(a)
}
aaa()
bbb()
</script>
运行结果:错误:“a”未定义,a是局部变量,他只属于函数aaa,并不属于函数bbb 
2.全局变量1 
<scripttype="text/javascript">
vara
functionaaa()
{
vara=10;
}
functionbbb()
{
alert(a)
}
aaa()
bbb()
</script>
运行结果:弹出undefined,这也是变量的类型之一,只不过是undefined类型,他并不同等与第一种的未定义 
变量的类型是由赋给变量的值决定的,这个时候bbb函数里的a是全局变量,虽然var了,但是并没有指定值,所以是undefined 
3.全局变量2 
<scripttype="text/javascript">
vara
functionaaa()
{
a=10;
}
functionbbb()
{
alert(a)
}
aaa()
bbb()
</script>
运行结果:10,a是全局变量并且通过函数aaa赋了值——10 
ps:我们经常称undefined是未定义,都是通过1和2,是不是可以说undefined≠未定义呢