为什么 JavaScript 中字符串创建 Str 对象 为什么不用加new?

    var sj=Date();
    document.write(sj.getHours());
    


    var str="大家好!"
    document.write(str.replace("好", "不好"));

大家好,第一个就不行,第二个就行?
请问为什么 date 对象必须加 new;
而string 对象为什么不用加 new?

我刚学 JavaScript ,所以这可是个 解剖麻雀 的问题,有利于我理解 JavaScript ;

谢谢了!

阅读 2.1k
评论
    3 个回答
    • 1.3k

    Date是构造函数,new是操作符
    new Date() 就是创建一个日期对象

    var s = 'abc'
    typeof s //"string"  基本类型
    
    var s = new String('abc')
    typeof s //"object"  对象

    所以就算要比较也是

    // 一:
    var s = String('大家好')   // string
    var s = new String('大家好')   // object
    
    // 二:
    var sj=Date();
    console.log(typeof sj)  // string  返回的是一个字符串,当然不能使用日期对象的方法getHours
    console.log(sj);    // Sat Apr 02 2016 09:32:56 GMT+0800
    
    var sj=new Date();
    console.log(typeof sj); // object 返回的是对象,自然能使用日期对象的方法。
    console.log(sj.getHours);  // 9        
      相似问题
      推荐文章