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 相关文章推荐
复制本贴标题和地址的js代码
Jul 01 Javascript
Chrome中模态对话框showModalDialog返回值问题的解决方法
May 25 Javascript
AngularJS学习笔记之依赖注入详解
May 16 Javascript
BootStrap树状图显示功能
Nov 24 Javascript
JavaScript 中 apply 、call 的详解
Mar 21 Javascript
关于vue面试题汇总
Mar 20 Javascript
JS中用EL表达式获取上下文参数值的方法
Mar 28 Javascript
vue2.0 实现导航守卫(路由守卫)
May 21 Javascript
详解Vue中使用插槽(slot)、聚类插槽
Apr 12 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
Oct 25 Javascript
vue 在methods中调用mounted的实现操作
Aug 07 Javascript
解决vue scoped html样式无效的问题
Oct 24 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
php类
2006/11/27 PHP
PHP 表单提交给自己
2008/07/24 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
smarty内置函数foreach用法实例
2015/01/22 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
2016/11/23 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
js只执行1次的函数示例
2016/07/20 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
ajax的分页查询示例(不刷新页面)
2017/01/11 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
JS实现禁止高频率连续点击的方法【基于ES6语法】
2017/04/25 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法
2019/09/24 Javascript
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
Python中列表的一些基本操作知识汇总
2015/05/20 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
2016/07/02 Python
Python实现针对中文排序的方法
2017/05/09 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
python 列表递归求和、计数、求最大元素的实例
2018/11/28 Python
Python Pillow Image Invert
2019/01/22 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
canvas学习笔记之2d画布基础的实现
2019/02/21 HTML / CSS
西安众合通用.net笔试题
2013/03/18 面试题
《望洞庭》教学反思
2014/02/16 职场文书
大学生职业生涯规划书参考模板
2014/03/05 职场文书
优秀会计求职信
2014/07/04 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python