javascript定义数组的问题 var mix=[1,2,3]; var mix=Array
答案:1 悬赏:50
解决时间 2021-01-22 03:53
- 提问者网友:我的未来我做主
- 2021-01-21 13:39
javascript定义数组的问题 var mix=[1,2,3]; var mix=Array
最佳答案
- 二级知识专家网友:夜风逐马
- 2021-01-21 13:57
别人的答案,你参考下:
[]是个直接量,是个现成的数组,直接可以使用,而new Array()表示什么意思呢?
var arr = new Array(); 表示自己手动创建一个数组,这是个从无到有的过程,
而js的new它到底是什么作用呢?
arr.constructor == Array.prototype.constructor;
这样变量arr就可以访问Array原型中的任何方法,也就是说arr就变成了所谓的数组,
当然new Array是有代价的,查找原型链是有时间代价的。可以做个这样的测试
//new Array()循环100000次
function test1(arr){
var d1 = new Date();
var a = []
for(var i = 0; i < 100000; i++){
a[i] = new Array();
}
var d2 = new Date();
arr.push(d2.getTime() - d1.getTime())
console.log(d2.getTime() - d1.getTime())
}
//[]循环100000次
function test2(arr){
var d1 = new Date();
var a = []
for(var i = 0; i < 100000; i++){
a[i] = [];
}
var d2 = new Date();
arr.push(d2.getTime() - d1.getTime())
console.log(d2.getTime() - d1.getTime())
}
//new Array方式执行100次,并计算平均值
function excuteTest1(){
var arr = [];
for(var i = 0; i < 100; i++) {
test1(arr);
}
console.log(arr)
console.log("average1:" + average(arr))
}
//[]方式执行100次,并计算平均值
function excuteTest2(){
var arr = [];
for(var i = 0; i < 100; i++) {
test2(arr);
}
console.log(arr)
console.log("average2:" + average(arr))
}
function average(arr) {
var s = 0,len = arr.length;
for(var i = 0; i < len; i++) {
s += arr[i];
}
return s/len;
}
然后我在不同的浏览器做测试:
new Array() []
FF: 19.85ms 6.6ms
Chrome: 19.4ms 4.58ms
IE11: 35.38ms 9.77ms
通过这些数据,显然能看出[]的效率要比new Array()好的多。像其他的new Function,new Object()都是类似的,所以在js中最好使用直接量。追问写的真好
[]是个直接量,是个现成的数组,直接可以使用,而new Array()表示什么意思呢?
var arr = new Array(); 表示自己手动创建一个数组,这是个从无到有的过程,
而js的new它到底是什么作用呢?
arr.constructor == Array.prototype.constructor;
这样变量arr就可以访问Array原型中的任何方法,也就是说arr就变成了所谓的数组,
当然new Array是有代价的,查找原型链是有时间代价的。可以做个这样的测试
//new Array()循环100000次
function test1(arr){
var d1 = new Date();
var a = []
for(var i = 0; i < 100000; i++){
a[i] = new Array();
}
var d2 = new Date();
arr.push(d2.getTime() - d1.getTime())
console.log(d2.getTime() - d1.getTime())
}
//[]循环100000次
function test2(arr){
var d1 = new Date();
var a = []
for(var i = 0; i < 100000; i++){
a[i] = [];
}
var d2 = new Date();
arr.push(d2.getTime() - d1.getTime())
console.log(d2.getTime() - d1.getTime())
}
//new Array方式执行100次,并计算平均值
function excuteTest1(){
var arr = [];
for(var i = 0; i < 100; i++) {
test1(arr);
}
console.log(arr)
console.log("average1:" + average(arr))
}
//[]方式执行100次,并计算平均值
function excuteTest2(){
var arr = [];
for(var i = 0; i < 100; i++) {
test2(arr);
}
console.log(arr)
console.log("average2:" + average(arr))
}
function average(arr) {
var s = 0,len = arr.length;
for(var i = 0; i < len; i++) {
s += arr[i];
}
return s/len;
}
然后我在不同的浏览器做测试:
new Array() []
FF: 19.85ms 6.6ms
Chrome: 19.4ms 4.58ms
IE11: 35.38ms 9.77ms
通过这些数据,显然能看出[]的效率要比new Array()好的多。像其他的new Function,new Object()都是类似的,所以在js中最好使用直接量。追问写的真好
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯