我已经看到了声明数组的第二种方式,我想知道什么样的javascript是因为当我尝试使用它时,我到处都有语法错误。是node.js中使用的第二个代码吗?还是那种其他一些框架?
car: {
_id: <ObjectId>,
manufacture: "Opel",
model: "Astra"
}
或
var array = [1, 2, 3];
甚至,是javascript的第二种方式吗?
答案 0 :(得分:6)
甚至,是javascript的第二种方式吗?
不,不是。您的第一个版本是创建数组的正确方法。 (你不能在JavaScript中声明数组,因为JavaScript是一种松散类型的语言。)
创建数组的两种方法(除了调用像slice
或map
这样的函数的副产品外)是:
数组文字,这是您在第一个示例中使用的内容:
var a = []; // Initially blank
var b = [1, 2, 3]; // Has three entries to start with
Array
构造函数,但它很棘手且冗长,您很少想要使用它:
var a = new Array(); // Initially blank
var b = new Array(1, 2, 3); // Has three entries to start with
我说它的原因很棘手&#34;如果你只给它一个参数,和那个参数是一个数字,你就预先设定了长度,而没有给它一个条目。所以:
var c = new Array(7); // Empty array with length of 7!
new Array(7)
和new Array(7, 7)
之间的这种差异有时会让人感到沮丧。
为了完整性,我应该提一下现在的JavaScript(从ECMAScript 2015开始)也有其他类型的数组,称为类型数组,例如Int32Array
;许多JavaScript引擎在整个规范完成之前就已经支持了它们。您可以通过new
运算符创建这些运算符,例如var a = new Int32Array(7)
。对于他们来说,构造函数不具有new Array
的棘手模糊性,幸运的是(他们确实有各种不同的潜在论点,但不是以相同的方式)。
旁注:您的第二个示例int[] array = new int[]{1, 2, 3};
是Java和C#的有效语法,也可能是其他一些语言。
答案 1 :(得分:1)
它的常规Java,而不是JavaScript
答案 2 :(得分:1)
第二种方式是C#方式来声明一个整数数组