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