1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

昨天看Js书。看到一例很有趣

本帖由 脑袋被驴踢了2006-10-30 发布。版面名称:前端开发

  1. 脑袋被驴踢了

    脑袋被驴踢了 New Member

    注册:
    2006-10-30
    帖子:
    43
    赞:
    1
    代码
    var a,b;
    a=3.14;
    b=a;
    a=4.13;
    alert(b);
    输出结果是3.14

    代码二
    var a,b;
    a=[0,1,2,3];
    b=a;
    a[0]=99;
    alert(b);
    输出结果是[99,1,2,3]

    :)
     
  2. 小李

    小李 New Member

    注册:
    2005-11-03
    帖子:
    2,468
    赞:
    20
    变量只是个盒子
     
  3. 小李

    小李 New Member

    注册:
    2005-11-03
    帖子:
    2,468
    赞:
    20
    诶, 对啊, 怎么数组是这样处理的?
     
  4. 脑袋被驴踢了

    脑袋被驴踢了 New Member

    注册:
    2006-10-30
    帖子:
    43
    赞:
    1
    一种是直接型。像布尔值跟常量。等等。。
    一种是引用型。只是引用数据。如数组。对象。函数。。

    书上说的。哈
     
  5. 小李

    小李 New Member

    注册:
    2005-11-03
    帖子:
    2,468
    赞:
    20
    我知道了,是不是JS 在处理数组的时候,如果把a附值给b 是引用,而不是复制,不需要单独在分配内存空间.所以就造成了,如果对a数组的第一个元素重新附值, b数组的第一个元素也就改变了?
     
  6. Ulysses

    Ulysses New Member

    注册:
    2006-02-05
    帖子:
    10,018
    赞:
    16
    数组是对象,是引用类型。

    一般的变量是值类型。
     
  7. 脑袋被驴踢了

    脑袋被驴踢了 New Member

    注册:
    2006-10-30
    帖子:
    43
    赞:
    1
    应该是楼上两位说的。哈。。不过他对字符串的解释有点奇怪。字符串好像既不是值类型也不是引用类型
     
  8. Ulysses

    Ulysses New Member

    注册:
    2006-02-05
    帖子:
    10,018
    赞:
    16
    你不会是在看 JavaScript 权威指南吧?

    其中也提到了 字符串 的特殊性。
     
  9. 脑袋被驴踢了

    脑袋被驴踢了 New Member

    注册:
    2006-10-30
    帖子:
    43
    赞:
    1
  10. amituofo

    amituofo New Member

    注册:
    2006-02-20
    帖子:
    450
    赞:
    6
    跟C一样.