为什么 JavaScript 中字符串创建 Str 对象 为什么不用加new? -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

2016-06-21 18:08:07 2113 1
var sj=Date();
  document.write(sj.getHours());
  


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

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

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

谢谢了!

取消 提交回答
全部回答(1)
  • 杨冬芳
    2019-07-17 19:45:11

    javascript引用类型的值是一个实例或者说对象,它是通过new + 构造函数创建。常见的引用类型包括Object、Array、Function、String、Number、Boolean、Date等。在创建实例时我们都可以使用如下方式

    var obj = new Object();
    var arr = new Array();
    //甚至
    var fn = new Function('val', 'return val');

    但有更简洁,并且更友好的方式来创建这些类型的实例叫字面量表示法如下

    var obj = {};
    var arr = [];
    var fn = functon (val) {
        return val;
    }

    同时String、Number、Boolean属于特殊的引用类型,我们叫它基本包装类型。我们平时都是使用字面量来表示它们而很少用new方式:

    var str = '';
    var num = 0;
    var boo = false;

    但是我们为什么可以使用类似str.slice()呢? 要知道要是一个对象实例才有其对应的方法。

    var str = 'text';
    var subStr = str.substring(2);
    /*原因在于在第二行代码访问时,访问过程处于一种读取模式,后台会自动完成以下处理。
    1.创建String对象实例
    2.实例中调用指定方法
    3.销毁这个实例*/
    var str = new String('text');
    var subStr = str .substring(2);
    str = null;

    引用类型与基本包装类型主要区别在于对象的生存期,使用new创建的对象会在执行流离开当前作用域之前一直保存在内存中,而自动创建的基本包装类型对象只存在于一行代码的执行瞬间,然后立即被销毁。

    1 0
相关问答

1

回答

js合并数组相同key值的项 ,急

2016-06-01 14:14:03 2400浏览量 回答数 1

1

回答

js 怎样去除数组重复项

2016-06-01 16:51:11 1512浏览量 回答数 1

1

回答

JS 中怎么把定义的对象的一个属性作为一个数组

2016-06-02 09:17:49 2527浏览量 回答数 1

1

回答

js中数组怎么变成json数据啊

2016-06-02 10:03:42 1468浏览量 回答数 1

1

回答

用js怎么把一个13位数的每一位放到数组里!

2016-06-02 13:28:30 3216浏览量 回答数 1

1

回答

js如何判断输入框输入的数组是否和div里的appendChild重复

2016-06-02 13:30:52 2606浏览量 回答数 1

1

回答

js如何将获取的n个文本添加到指定数组中?

2016-06-12 16:42:24 1813浏览量 回答数 1

1

回答

在Mysql(或者在js中)构建完整查询结果数组

2016-07-07 14:37:23 1886浏览量 回答数 1

1

回答

将具有数字键的JavaScript对象转换为数组

2020-01-16 17:50:25 486浏览量 回答数 1

1

回答

将具有数字键的JavaScript对象转换为数组

2020-02-06 22:36:27 261浏览量 回答数 1
+关注
杨冬芳
IT从业
文章
问答
问答排行榜
最热
最新
相关电子书
更多
Javascript中的对象
立即下载
Javascript中的函数
立即下载
JavaScript 语言在引擎级别的执行过程
立即下载