变量的使用域不一样,你用下面的语句就知道了。<html> 
<head> 
</head> 
<body> 
<script> function p(n) 

    n+=10; 
    return n;

var n = new Number(100); 
alert(p(n)); 
alert(n); 
// 为甚显示不是110呢??? 
</script> 
</body> 
</html> 

解决方案 »

  1.   

    Js里面Number只传值不传引用 Date这样的对象和自定义对象才传引用
      

  2.   

    <html> 
    <head> 
    </head> 
    <body> 
    <script> 
    function p(o) 

        alert("type1=" + typeof o);// 此处是一个object
        o+=10; 
        alert("type2=" + typeof o);//此处已经成了一个基本类型,所以原来的object的值还是原来的,这中间类型发生了转换
    } var n = new Number(100); 
    alert("n is " + typeof n);
    p(n); 
    alert(n); 
    // 为甚显示不是110呢??? 
    </script> 
    </body> 
    </html> 
      

  3.   

    n+=10; 
    中n是局部变量
    var n = new Number(100); 
    中n是全局变量;
    作用域不一样
      

  4.   

    可是我用的 new Number(100)  这是对象,应该是引用类型,相当与指针,应该保持变化啊 
      

  5.   

    function p(n) 

        n = n+10;   //这里实际上调用了Number对象的Valueof方法阿,已经转换成值类型了 ,表达式右边的n是Object对象引用,左边副值之后就是值了