javascript中new Array()和var arr=[]用法区别


Posted in Javascript onDecember 01, 2017

大家在学习javascript中对于数组函数new Array()和var arr=[]很多朋友不知道如何区别,也不知道用法,下面看看我们总结的。

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 Date().getTime();
console.log('输出耗时:',endTime-startTime);

上面 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']; 定义一个数组的时候,难道它没有通过构造函数在内存中开辟一个存放地址吗?

js中数组Array的一些常用方法总结

var list = new Array()是我们在js中常常写到的代码,今天就总结哈Array的对象具有哪些方法。

list[0] = 0;

list[1] = 1;

list[2] = 2;

或者这样声明:var list = [0,1,2]

1 shift()t:删除数组的第一个元素,返回删除的值。这里是0

2 unshift(3,4):把参数加载数组的前面,返回数组的长度。现在list:中是3,4,0,1,2

3pop():删除数组的最后一个元素,返回删除的值。这里是2.

4push(3):将参数加载到数组的最后,返回数组的长度,现在List中时:0,1,2,3

5concat(3,4):把两个数组拼接起来。

6splice(start,deleteCount,val1,val2,...):从start位置开始删除deleteCount项,并从该位置起插入val1,val2,...

reverse:将数组反序
var a = [1,2,3,4,5];
var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]

sort(orderfunction):按指定的参数对数组进行排序
var a = [1,2,3,4,5];
var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5]

slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组
var a = [1,2,3,4,5];
var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5]

join(separator):将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符
var a = [1,2,3,4,5];
var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5"

Javascript 相关文章推荐
javascript实现的基于金山词霸网络翻译的代码
Jan 15 Javascript
一步一步制作jquery插件Tabs实现过程
Jul 06 Javascript
JavaScript学习笔记(一) js基本语法
Oct 25 Javascript
jQuery选择器之基本选择器与层次选择器
Mar 03 Javascript
JavaScript中字符串(string)转json的2种方法
Jun 25 Javascript
jQuery联动日历的实例解析
Dec 02 Javascript
原生js开发的日历插件
Feb 04 Javascript
AngularJS实现单一页面内设置跳转路由的方法
Jun 28 Javascript
React根据宽度自适应高度的示例代码
Oct 11 Javascript
Vue中的基础过渡动画及实现原理解析
Dec 04 Javascript
highCharts提示框中显示当前时间的方法
Jan 18 Javascript
Vue实现剪切板图片压缩功能
Feb 04 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
Dec 01 #Javascript
利用JS测试目标网站的打开响应速度
Dec 01 #Javascript
Vue-Access-Control 前端用户权限控制解决方案
Dec 01 #Javascript
javascript按顺序加载运行js方法
Dec 01 #Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
Dec 01 #Javascript
javascript Function函数理解与实战
Dec 01 #Javascript
React Native react-navigation 导航使用详解
Dec 01 #Javascript
You might like
文件上传类
2006/10/09 PHP
Php做的端口嗅探器--可以指定网站和端口
2006/10/09 PHP
PHP正确解析UTF-8字符串技巧应用
2012/11/07 PHP
php实现单链表的实例代码
2013/03/22 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
php旋转图片90度的方法
2013/11/07 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
2016/03/21 PHP
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
js实现网站首页图片滚动显示
2013/02/04 Javascript
高效的获取当前元素是父元素的第几个子元素
2013/10/15 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
js获取视频时长代码
2014/04/10 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
jQuery实用技巧必备(下)
2015/11/03 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
2015/11/30 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
2016/10/11 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
Python正则表达式指南 推荐
2018/10/09 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
python统计mysql数据量变化并调用接口告警的示例代码
2020/09/21 Python
四查四看剖析材料
2014/02/14 职场文书
法律专业自荐信
2014/06/03 职场文书
保卫钓鱼岛口号
2014/06/20 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL