Nai*_*gel 174 javascript
当我需要声明一个新数组时,我使用这种表示法
var arr = new Array();
Run Code Online (Sandbox Code Playgroud)
但是当在线测试时,例如在jsbin上,警告会向我发出"使用数组文字符号[]"的信号.
我没有找到避免使用构造函数的理由.在某种程度上效率低于使用[]
?还是不好的做法?
是否有充分的理由使用var arr = [];
而不是var arr = new Array();
?
Aln*_*tak 258
大多数人都使用,var a = []
因为道格拉斯克罗克福德这么说.
他的理由包括:非直观和不一致的行为new Array()
:
var a = new Array(5); // an array pre-sized to 5 elements long
var b = new Array(5, 10); // an array with two elements in it
Run Code Online (Sandbox Code Playgroud)
请注意,new Array()
创建一个只包含一个预先指定的数字元素的数组是没有办法的!
使用[]
实际上更有效,更安全!可以覆盖Array
构造函数并使它做奇怪的事情,但你不能覆盖它的行为[]
.
就个人而言,我总是使用[]
语法,同样总是使用{}
语法代替new Object()
.
zzz*_*Bov 48
一个显着的区别是,[]
它将始终实例化一个新的数组,而new Array
可能被劫持以创建一个不同的对象.
(function () {
"use strict";
var foo,
bar;
//don't do this, it's a bad idea
function Array() {
alert('foo');
}
foo = new Array();
bar = [];
}());?
Run Code Online (Sandbox Code Playgroud)
在我的示例代码中,我将Array
函数隐藏在文档范围的其余部分,但是如果遇到这种问题,那么代码将不会留在一个很好的闭包中,并且可能很难找到.
免责声明:劫持Array
构造函数不是一个好主意.
JL2*_*235 26
[]
数组文字更容易预测,因为大多数开发人员都使用它.大多数数组使用都将使用文字,并且让您的代码与其他开发人员使用的代码相匹配是有价值的.
[]
var ns = [];
var names = [ 'john', 'brian' ];
Run Code Online (Sandbox Code Playgroud)
如所示在这里,使用文本为空和几个已知元素的比Array构造fatster.
new Array(size)
如果已知大小,则使用Array构造函数可显着提高性能.然而,这也意味着你必须处理一个已经有'undefined'填充所有值的数组.
如图所示这里
// fill an array with 100 numbers
var ns = new Array( 100 );
for ( var i = 0; i < 100; i++ ) {
ns[i] = i;
}
Run Code Online (Sandbox Code Playgroud)
这也适用于非常小的阵列.
jAn*_*ndy 12
不,实际上没有理由使用一个符号而不是另一个用于空数组.
但是,大多数浏览器使用x = [];
比调用构造函数稍微好一点的性能.
如果你需要创建一个具有特定大小的数组,你需要使用x = new Array(10);
,例如,这将创建一个包含10 undefined
个插槽的数组.
小智 7
定义数组或对象的最快方法是文字方式,因为您不需要调用构造函数
var arr1 = new Array(1, 2, 3, 4);
var arr2 = [1, 2, 3, 4];
alert(arr1[0]); // 1
alert(arr2[0]); // 1
var arr3 = new Array(200);
var arr4 = [200];
alert(arr3[0]); // 'undefined'
alert(arr4[0]); // 200
Run Code Online (Sandbox Code Playgroud)
两者都是正确的.但大多数人都在使用var a = []
在JavaScript中声明数组的三种方法.
方法1:我们可以使用JavaScript"new"关键字显式声明一个数组,以在内存中实例化数组(即创建它,并使其可用).
// Declare an array (using the array constructor)
var arlene1 = new Array();
var arlene2 = new Array("First element", "Second", "Last");
Run Code Online (Sandbox Code Playgroud)
方法2:我们使用另一种方法来声明数组.
// Declare an array (using literal notation)
var arlene1 = [];
var arlene2 = ["First element", "Second", "Last"];
Run Code Online (Sandbox Code Playgroud)
方法3:JavaScript还允许您通过调用特定方法间接创建数组.
// Create an array from a method's return value
var carter = "I-learn-JavaScript";
var arlene3 = carter.split("-");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12230 次 |
最近记录: |