关于全局变量和局部变量的那些事

  变量对于学习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≠未定义呢