打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
javascript 中的 new Array() 和 var arr=[] 有何区别 一介布衣

javascript 中 new Array() 和 var arr=[ ] 创建数组到底有何不同?

今天就探讨一个 JavaScript 中很常见的问题.


var arr=[]这是一种字面量定义数组的方法



var arr=new Array()这是调用数组构造函数生成的数组


上面的2种定义数组的方法到底一样不一样目前我们大致的认同是下面这样的

用new 关键字去内存开辟一个存储地址比较耗资源,耗内存.

而字面量方式直接在内存开辟一个存储字段相对简单,不耗资源.

我们首先不去否定上面的结论对不对.

首先从功能上来说 var =arr=[] 和 var arr= new Array() 是一样的.然后我们用一段代码来验证一下

var startTime=new Date().getTime();var test1=[];var test2=[];for(var i=0;i<1000000;i++){ test1[i]="{};" test2[i]="new" object();}var="" endtime="new">

上面 test1 和 test2 2个数组中每个元素都是一个数组,可以依次注释任意一行代码,我大概测试10多次以上

结果

36**36**


上面的2个耗时都是 3600 秒左右,忽上忽下,没有丝毫大的差距我的运行话就 MacBook Air (13-inch, Mid 2013) ,处理器:1.3 GHz Intel Core i5 , 内存: 4 GB 1600 MHz DDR3 , JS Runner 工具


所以姑且认为上面的2种方法差异不大.[ ]和new Array()在语法上唯一的区别是new Array()可以直接设置数组的长度

new Array() 在构造数组的时候有下面几种方法

  • var arr = new Array();
  • var arr = new Array(8);
  • var arr = new Array('c', 'd', “e”);

字面量方式var d = ['111', '222', '333'];

所以在性能上这2个方法没有太大差距,只是一种使用习惯,字面量更加直接了当.退一步讲,如果我用 var arr=[‘111’,’222’,’333’]; 定义一个数组的时候,难道它没有通过构造函数在内存中开辟一个存放地址吗?

出自:javascript 中的 new Array() 和 var arr=[] 有何区别

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
11种JavaScript生成1到100的数组的方式汇总
js 随机取数组元素
JavaScript数组
JavaScript_summary
Web前端面试题目及答案汇总 – 码农网
Javascript开发经验谈(转)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服