问下var arr=new Array()和 var arr=[] 的区别。

卡布洛 2013-05-29 11:49:10
今天看到有人说定义数组建议用var arr=[],而不建议用new Array();
请问这两个有性能方面的优势比较吗?或者在哪种情况下用哪种更好一点,还是这两个不管什么情况下,性能都没区别???
...全文
12158 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
李小斌同學 2015-08-10
  • 打赏
  • 举报
回复
因为 JSON格式的语法是引擎直接解释的。而new Array 则需要调用Array的构造器。还有就是1.当你需要将一个数字转化为字符串时可以这样定义:var s=""+1; 这样的转化最快。2.当你定义一个对象类型时:var o={}; 而已 var o=new Object();道理是同样,new Object()需要调用Object的构造器。3.在js中执行字符串替换时,或查找字符串,需要进行循环时,可以考虑使用正则,速度更快。4.尽可能的少定义、使用全局变量
vonsiking 2015-07-01
  • 打赏
  • 举报
回复
看的智能社 的javascript视频上是这么说的: 数组的定义 方法一:var arr=[12, 5, 8, 9]; 方法二:var arr=new Array(12, 5, 8, 9); 没有任何差别,[]的性能略高,因为代码短 (js语言写的越少,加载的就越快,执行的也越快,当然是实现功能一样的前提下)
提拉米苏_ 2015-01-19
  • 打赏
  • 举报
回复
引用 11 楼 lg1959399353 的回复:
[quote=引用 9 楼 jslang 的回复:] []和new Array()在语法上唯一的区别是new Array()可以直接设置数组的长度。 如:new Array(100) 但这一特性往往给程序的修改带来些小麻烦。 如:new Array(56,46,78) 一开始给数组设置了三个元素,之后因为某某原因要修改程序去掉两个元素。不注意的话就成了new Array(56)。导致程序错误。
效率应该一样吧,只是根据需要选择的方式可以不一样吧。[/quote] 效率是不一样的
提拉米苏_ 2015-01-19
  • 打赏
  • 举报
回复
引用 1 楼 xinfucheng 的回复:
var arr=[], 数组不就是Array类实例出来的对象吗,这两种写法我觉得应该等效吧
使用数组字面量表示法的时候是不调用Array()构造函数的
提拉米苏_ 2015-01-19
  • 打赏
  • 举报
回复
引用 1 楼 xinfucheng 的回复:
var arr=[], 数组不就是Array类实例出来的对象吗,这两种写法我觉得应该等效吧
使用数组字面量表示法的时候是不调用Array()构造函数的
ftszhang 2013-05-30
  • 打赏
  • 举报
回复
yjbnew 2013-05-30
  • 打赏
  • 举报
回复
一个简体,一个繁体,我喜欢简体写法
卑微的爱情 2013-05-30
  • 打赏
  • 举报
回复
引用 9 楼 jslang 的回复:
[]和new Array()在语法上唯一的区别是new Array()可以直接设置数组的长度。 如:new Array(100) 但这一特性往往给程序的修改带来些小麻烦。 如:new Array(56,46,78) 一开始给数组设置了三个元素,之后因为某某原因要修改程序去掉两个元素。不注意的话就成了new Array(56)。导致程序错误。
效率应该一样吧,只是根据需要选择的方式可以不一样吧。
xinfucheng 2013-05-29
  • 打赏
  • 举报
回复
new Array() 和var arr=[] js引擎对他们的理解应该一样吧, arr=[] 数组实质不就是对象吗,即便不写new ,js引擎同样会在内存中开辟一个内存单元存储数据, 我还是觉得效率上没什么差别啊
铁克禁卫军 2013-05-29
  • 打赏
  • 举报
回复
new Array() 会实例化一个对象变量,而var arr=[],等于是直接声明一个变量。很明显实例一个对象对性能的损耗比直接声明一个对象来的大些
NANU-NANA 2013-05-29
  • 打赏
  • 举报
回复
卡布洛 2013-05-29
  • 打赏
  • 举报
回复
我请教了下牛人,他给我解答了: new关键字的使用 除了在需要实例化一个对象,或罕见的需要延时加载数据的情况外,你基本上不需要使用new关键字。在Javascript里分配大量的new变量地址是一项很慢的操作,为了效率起见,你应该始终使用对象符号。 膜拜牛人,虽然只有在大批量数据的情况下才会有影响,但是凡是从小事做起,细节优化成功! 快来接分啦。。。。
xinfucheng 2013-05-29
  • 打赏
  • 举报
回复
var arr=[], 数组不就是Array类实例出来的对象吗,这两种写法我觉得应该等效吧
天际的海浪 2013-05-29
  • 打赏
  • 举报
回复
[]和new Array()在语法上唯一的区别是new Array()可以直接设置数组的长度。 如:new Array(100) 但这一特性往往给程序的修改带来些小麻烦。 如:new Array(56,46,78) 一开始给数组设置了三个元素,之后因为某某原因要修改程序去掉两个元素。不注意的话就成了new Array(56)。导致程序错误。
coralandbill 2013-05-29
  • 打赏
  • 举报
回复
一一先生 2013-05-29
  • 打赏
  • 举报
回复
太专业了~~~不懂哦
KK3K2005 2013-05-29
  • 打赏
  • 举报
回复
引用 2 楼 u010480479 的回复:
我请教了下牛人,他给我解答了: new关键字的使用 除了在需要实例化一个对象,或罕见的需要延时加载数据的情况外,你基本上不需要使用new关键字。在Javascript里分配大量的new变量地址是一项很慢的操作,为了效率起见,你应该始终使用对象符号。 膜拜牛人,虽然只有在大批量数据的情况下才会有影响,但是凡是从小事做起,细节优化成功! 快来接分啦。。。。
关键是 使用对象符号就不 new了吗?

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧