var x = new Number(3)
var x = 3
请问这两种有何区别?哪种效率高?哪种是规范写法?

解决方案 »

  1.   


    第一种写法是多余的,不推荐。if (new Boolean(false))
        alert("和false不是一回事");
      

  2.   

    在js中没有必要 
    var x=3;-- 整型的
    var y="3"--字符串
      

  3.   

    <script language="javascript">
    var x1 = new Number(3) 
    var x = 3 
    alert(typeof(x1))
    alert(typeof(x))</script>
      

  4.   

    这种表示叫字面量能用字面量就用字面量,直观、简单、易读、高效。string - "Hello, World!"
    number - 123
    boolean - true
    object - { field: value }
    function - function a() {}
    array - [1, 2, 3]
    regex - /\d+/g
      

  5.   

    如果声明一个空的等待放数字,是不是下面写法,直观些?
    var x = new Number;
      

  6.   

    var x = new Number(3)  //创建一个Number对象的实例
    var x = 3     //字面量在脚本中尽量用字面量.new会浪费内存.虽然结果是一样的
      

  7.   


    if (0)
        alert("看不到我的.");if (new Number(0))
        alert("^_^");
      

  8.   


    var a = new Number(3);  // alert(typeof a);     <--- object
                            // alert(typeof a.valueOf());   <--- number
    var b = 4;              // alert(typeof b);     <--- number!function () {
    // 修改 Number.prototype.valueOf 方法。 每次调用都 alert 一下。
    Number.prototype.oValueOf = Number.prototype.valueOf;
    Number.prototype.valueOf = function() {
    alert("(" + this.toString() + ").valueOf()");
    return this.oValueOf();
    };
    }();var c = a + b + a + b + a + b;  // 会看到三次 "(3).valueOf()"
    alert(c);  // <------ 21!function () {
    // 再修改 , 让 Number.prototype.valueOf 返回 0;
    Number.prototype.valueOf = function() {
    return 0;
    };
    }();c = a + b + a + b + a + b;
    alert(c);  // <---- 12a = new Number(3);
    b = new Number(3);
    alert(a == b);  // <--- false
    可以看出, Number 对象 是 对数值做了包装。
    程序如果输要对 Number 的实例进行运算,需要调用其 valueOf() 方法.所以, new Number(*) 不高效,而且因为 object 和 number 值的不同,容易让人迷惑
      

  9.   


    var x = new Number(3)  //创建一个对象 
     var x = 3  //声明一下   
      

  10.   


    JScript 根据数字值的要求创建 Number 对象。 很少有必要显式创建 Number 对象。Number 对象最主要的用途是将其属性集中到一个对象中,以及使数字能够通过 toString 方法转换为字符串。
    ——以上内容摘自 JScript 参考手册!
    Web 开发常用手册JScript语言参考.rar
    http://download.csdn.net/source/308916DHTML参考手册.rar
    http://download.csdn.net/source/308913样式表中文手册.chm
    http://download.csdn.net/source/304124
      

  11.   

    仔细读了一下,发现确实不一样,new Number() 得到滴是对象,可以添加动态属性,
    而 直接赋值得到滴是 number,属于基本类型,而非 object!结论,无需 Number 对象时直接赋值即可,需要 Number 对象就要 new 一下了,但是需要时候确实不多!示例如下:L@_@K
    var x1 = new Number(3);
    x1.home = "China";var x2 = 3;
    x2.home = "TaiWan";alert(x1.home); // China
    alert(x2.home); // undefined
      

  12.   

    补充一句,其他两种基本类型,Boolean, String 同理!