压缩数组和文字数组有什么区别?

TCS*_*TCS 17 javascript arrays

正如标题所说:压缩数组和文字数组之间有什么区别?

new Array("John", "Bob", "Sue"); // condensed array

["John", "Bob", "Sue"]; // literal array
Run Code Online (Sandbox Code Playgroud)

有什么我可以用一个我不能用另一个做的事情吗?还是它保存在记忆中的方式?

jon*_*ohn 28

,产生的对象没有区别,它们是相同的.

第一种是尝试满足用于"经典"环境的程序员,在这种环境中你必须实例化一个"新的"Array对象.

应该注意的是,javascript中的数组不是内存的顺序分配,而是具有可枚举属性名称和一些额外(有用)方法的对象.

因此,在大多数(如果不是全部)情况下,创建一个设定长度的数组是相当无用的并且是不必要的.

var array = new Array(10);
Run Code Online (Sandbox Code Playgroud)

在功能上是相同的手动设置数组的长度

var array = [];
array.length = 10;
Run Code Online (Sandbox Code Playgroud)

  • +1我喜欢你对OP问题的解读比我的好一点.我专注于你可以用语法形式"不同"地做什么,但在第二次阅读时,OP可能会询问用这些形式产生的数组对象的差异.我会留下我的答案,但我认为你的答案是正确的. (2认同)