• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Jelly#布丁
我希望世界上不再有战争,我希望和我爱的人永远在一起
博客园    首页    新随笔    联系   管理     

JavaScript变量

变量,即通过一个名字将一个值关联起来,以后通过变量就可以引用到该值,比如:

1 var str = "Hello, World";
2  var num = 2.345;


  当我们下一次要引用”Hello, Wrold”这个串进行某项操作时,我们只需要使用变量str即可,同样,我们可以用10*num 来表示10*2.345。变量的作用就是将值“存储”在这个变量上。

  基本类型和引用类型

JavaScript中的数据类型,其中基本类型如数字,布尔值,它们在内存中都有固定的大小,我们通过变量来直接访问基本类型的数据。而对于引用类型,如对象,数组和函数,由于它们的大小在原则上是不受任何限制的,故我们通过对其引用的访问来访问它们本身,引用本身是一个地址,即指向真实存储复杂对象的位置。

基本类型和引用类型的区别是比较明显的,我们来看几个例子:

1 var x = 1;//数字x,基本类型
2  var y = x;//数字y,基本类型
3  print(x);
4 print(y);
5
6 x = 2;//修改x的值
7  
8 print(x);//x的值变为2
9  print(y);//y的值不会变

 

  这样的结果应该在你的意料之内,没有什么特别之处,我们再来看看引用类型的例子,由于数组的长度非固定,可以动态增删,因此数组为引用类型:

1 var array = [1,2,3,4,5];
2  var arrayRef = array;
3
4 array.push(6);
5 print(arrayRef);
   引用指向的是地址,也就是说,引用不会指向引用本身,而是指向该引用所对应的实际对象。因此通过修改array指向的数组,则arrayRef指向的是同一个对象,因此运行效果如下:1,2,3,4,5,6

 变量的作用域

变量被定义的区域即为其作用域,全局变量具有全局作用域;局部变量,比如声明在函数内部的变量则具有局部作用域,在函数的外部是不能直接访问的。比如:

1 var variable = "out";
2
3  function func(){
4 var variable = "in";
5 print(variable);//打印”in”
6  }
7
8 func();
9 print(variable);//打印”out”
  应该注意的是,在函数内var关键字是必须的,如果使用了变量而没有写var关键字,则默认的操作是对全局对象的,比如:

1 var variable = "out";
2
3  function func(){
4 variable = "in";//注意此variable前没有var关键字
5  print(variable);
6 }
7
8 func();
9 print(variable);//全局的变量variable被修改

posted on 2010-05-26 10:28  Jelly#布丁  阅读(143)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3